繁体   English   中英

我们应该在竞争性编程中使用cin.ignore()吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM