getline 在接收时遇到回车会停止接收 不会把回车写入数据,但是会把输入缓冲区的回车清除掉;
#include <iostream>
#include<string>
using namespace std;
int main()
{
string s;
char c;
cin>>s;
cin.get(c);
cout<<'a'<<s<<'g'<<endl;
cout<<c;
return 0;
}
输入sadf回车,发现直接输出asadfg, 不会接收c,因为c接收了上面的回车;
但是
#include <iostream>
#include<string>
using namespace std;
int main()
{
string s;
char c;
getline(cin,s);
cin.get(c);
cout<<'a'<<s<<'g'<<endl;
cout<<c;
return 0;
}
输入sad回车发现要求输入c,c没有接收回车,但是发现输出asadg,无换行说明s没有接收回车,~所以回车被清除了;
另外》会跳过空白符(回车,换行,制表)
本文探讨了C++中getline函数与cin在处理输入时的不同行为,特别是关于如何处理回车符及其对后续输入的影响。通过两个示例程序演示了这两种输入方式的特点。
1152

被折叠的 条评论
为什么被折叠?



