某次刷题的时候,要求输入一个字符串(含空格),然后对其进行操作,后来发现用cin输入是有bug的。
在输入的过程中,当遇到第一个空格,即输入完毕或者是字符串读取完毕。
#include<iostream>
using namespace std;
int main()
{
char s[10] = {0};
cin>>s;
cout<<s<<endl;
return 0;
}
后来就查了一下资料,整理了一下C++如何输入带空格的字符串
方法一、用gets()函数
#include<iostream>
using namespace std;
int main()
{
char s[10] = {0};
//cin>>s;
/*方法一、gets()函数*/
gets(s);
cout<<s<<endl;
return 0;
}
方法二、cin.get()方法
#include<iostream>
#include<string>
using namespace std;
int main()
{
char s[10] = {0};
//cin>>s;
/*方法一、gets()函数*/
//gets(s);
/*方法二、cin.get()*/
cin.get(s,10);
cout<<s<<endl;
return 0;
}
方法三、基于string 的getline()
#include<iostream>
#include<string>
using namespace std;
int main()
{
//char s[10] = {0};
//cin>>s;
/*方法一、gets()函数*/
//gets(s);
/*方法二、cin.get()*/
//cin.get(s,10);
//cout<<s<<endl;
/*方法三、基于string的getline()*/
string ss = "";
getline(cin,ss);
cout<<ss<<endl;
return 0;
}