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

标签 c++ cin

输入是一个整数,后跟两个字符串。

我想写下面的代码

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/

相关文章:

c++ - 标准 (C++) 对编译时初始化有何规定?

c++ - 链接 QtCreator && OpenCv

c++ - 当模板参数是 bidirectional_iterator 时如何启用模板类特化?

c++ - 如何清除进程被阻止时发生的用户输入 (cin)?

c++ - 有两个 cin 的无限循环

c++ - 如何在 C++ 中将用户输入验证为 double ?

c++ - 为 icu::UnicodeString 选择编码

c++ - Visual C++ 中的 std::vector::erase() 中的段错误

c++ - 允许用户跳过输入并直接按 Enter 键

c++ - 用一串命令预加载 cin