C++ cin.ignore() 跳过循环
C++ cin.ignore() skip loop
我在程序中创建了一个 for 循环,因此您必须按回车键才能继续。我使用 cin.ignore(( 做了这个。 这是我正在使用的代码的基本思想。
for (int i = 0; i < 5; i++) { // loop will do it for each player data
cout << "Press Enter to Continue ";
cin.ignore();
system("cls");
cout << "Playes Data" << endl;
}
此代码工作正常,直到玩家决定输入某些内容而不仅仅是按 Enter 键。 据我了解,因为玩家输入了一些东西,这意味着会有一个缓冲区。你可以摆脱缓冲区,只使用cin.ignore。这使得它跳过迭代,玩家不必按回车键继续。我刚刚包含了第二个cin.ignore,但我不希望他们必须按两次回车键。有没有办法仅在有缓冲区时才使用第二个cin.ignore ,或者有其他方法可以解决这个问题?
总是有一个缓冲区。 在没有参数值的情况下单独调用std::cin.ignore()
,只需跳过缓冲区中的下一个字符,该字符可能是也可能不是ENTER按的'n'
字符。
要跳过缓冲区中的所有内容,直到下一次按ENTER键,请使用std::cin.ignore(std::numeric_limits<streamsize>::max(), 'n')
。
你可以替换
cin.ignore();
跟
cin.ignore(std::numeric_limits<std::streamsize>::max(), 'n');
其中第二个选项将忽略所有字符,包括 Enter 键放入流中的换行符。
相关文章:
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- 在 std::getline 和 std::cin 期间卡在循环中
- C++ cin.ignore() 跳过循环
- 而循环跳过 cin.getline() 对于 C 字符串
- 当输入在带有空格的单行中给出时,cin 如何在 while 循环中工作?
- :CIN 不断打印用户在每次循环后输入的内容
- 输入 ctrl + x 后如何再次 cin (cin<<x) 循环(cin 一个结构)
- cin语句在循环的第三次迭代中被跳过
- 在循环中使用 cin.get() 输入字符串
- C++向量:在循环中使用CIN初始化
- 当我输入一个字母时,cin 输入(输入是一个 int),而不是打印错误一次,它打印正确一次,然后在循环的其余部分打印 i
- 为什么cin.rdbuf()->sbumpc()在循环中只要求我输入一次?
- 在 for 循环中使用后,Cin 被跳过
- 如何在我的代码中修复无穷循环?我认为它跳过了第二个CIN,因此它一直在循环
- C :在(CIN)循环中,有时会忽略循环
- 如果 (!(cin >>变量名称)) 在此循环中
- CIN 到矢量输入循环无限期.为什么
- C++ if(cin>>input) 在 while 循环中无法正常工作
- std::cin 导致无限循环
- 我可以做一个循环,直到“std::cin”在输入缓冲区中看到“”字符