输入是一个整数,后跟两个字符串。
我想写下面的代码
cin>>num;
cin.ignore( numeric_limits<streamsize>::max(), '\n' );
getline(cin,string1,'\n');
getline(cin,string2,'\n');
如果我省略第 2 行,代码将在我的编译器上失败。我不知道在线法官是如何工作的。是否需要 cin.ignore() 函数?是否也需要分隔符“\n”?
最佳答案
Is the cin.ignore() function required?
是的,否则第一个 getline
将获取包含第一个数字的行的剩余部分(可能为空)。
Are the delimiters '\n' required as well?
是的,默认情况下它会忽略所有字符,包括行尾。指定 \n
以忽略直到(包括)当前行末尾的所有字符。
关于c++ - 我们应该在竞争性编程中使用 cin.ignore() 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20431618/