使用cin.clear()或cin.ignore()跳过最开始的终止符
例如
int main()
{
string strline;
cin>>strline;
cout<<strline<<endl;
cin.ignore(1);//忽略一个字符
getline(cin,strline);
cout<<strline<<endl;
return 0;
}
也可以用cin.clear();
或cin.ignore(1024,'/n')在遇到换行后不再忽略,或者忽略了1024个字符后不再忽略。
解释string 类型的输入操作符和getline 函数分别如何处理空白字符。
string 类型的输入操作符对空白字符的处理:
读取并忽略有效字符(非空白字符)之前所有的空白字符,然后读取字符直至再次遇到空白字符,读取终止(该空白字符仍留在输入流中)。
getline 函数对空白字符的处理:
不忽略行开头的空白字符,读取字符直至遇到换行符,读取终止并丢弃换行符(换行符从输入流中去掉但并不存储在string对象中)
参考:
1.http://blog.youkuaiyun.com/guankle/article/details/6250013
2.c++primer 习题3.5
1251

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



