c++的输入问题(getline())。。好奇怪。。
int main()
{
string s;
char a;
cin>>a;
cout << a << endl;
getline(cin,s);
cout << s;
}
为什么在输入一个字符给a之后,然后终端里会显示输入的a的值,然后程序就结束了?为什么不让我再输入字符串s了呢?
如果在输入a的时候不是输入一个字符而是一个字符串,比如“aaa tttt”,则终端里会出现:
a
aa tttt
然后程序结束。
这是为什么呢请问?谢谢各位了! C++ String cin getline 输入
[解决办法]
>>操作符会跳过所有的空白字符,然后输入直到又遇到空白字符。所以这时可以输入,因为它跳过了缓冲区中的换行符。
但是,它不能代替getline,因为它会在再次遇到空白字符时停止输入:
输入:
abc 123 xyz
用getline会得到“abc 123 xyz”,用>>会得到“abc”。