![](/img/trans.png)
[英]Why do we need to use cin.ignore() before getline(cin, string)?
[英]Should we use cin.ignore() in competitive programming?
输入是一个整数,后跟两个字符串。
我想写下面的代码
cin>>num;
cin.ignore( numeric_limits<streamsize>::max(), '\n' );
getline(cin,string1,'\n');
getline(cin,string2,'\n');
如果我省略第2行,则代码在我的编译器上失败。 我不知道在线法官的工作方式。 是否需要cin.ignore()函数? 分隔符也需要'\\ n'吗?
是否需要cin.ignore()函数?
是的,否则第一个getline
将获得包含第一个数字的行的其余部分(可能为空)。
分隔符也需要'\\ n'吗?
是的,默认情况下它将忽略所有字符,包括行尾。 指定\\n
可忽略直到(包括)当前行末尾的所有字符。
这是我今天才发现的,因此我在这里与您分享。
输入数值输入时,请使用
cin>>numberVar>>ws;
这样可以避免空格,让您使用
getline(cin, stringVar);
没有任何问题。
乐意效劳。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.