c++ - While 循环重复 4 次

标签 c++ validation while-loop

我试图只接受整数作为输入,并同时循环它作为一种验证。问题是,当用户输入“Two”之类的内容时,while 循环会在再次询问用户之前对输入进行 3 次不同的处理。有没有办法防止这种情况发生并跳过 3 次迭代?

cout << "Enter Student ID: ";
while(!(cin >> id))
{
    cout << "\nERROR: Please enter a Positive Whole Number" << endl;
    cin.clear();
    cin.ignore ();
    cout << "Enter Student ID: ";
}

最佳答案

你可以使用这个。

cin.ignore (std::numeric_limits<streamsize>::max (), '\n') ;

它会跳过所有行,并且无论您输入多少无效字符,您都不会获得额外的循环迭代。

关于c++ - While 循环重复 4 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13549190/

相关文章:

c++ - 标准库/模板容器的 const 语义的经验法则?

c++ - Oracle 数据库中的 OCCI - 在 OCI.dll 库中找不到过程 OCIPIsDescRebuilt 的入口点

c# - WPF 的现代 UI - ModernDialog : Allow to click Ok only on some conditions

java - 需要循环数组/列表/任何内容并*返回给调用者*每个元素 - 但当然循环只运行一次

python - 如何让 while 循环识别它是文件结尾

javascript - 检查所有值是否正确循环

c++ - 如何使用命令提示符,记事本和MinGW编译带有主文件,头文件和实现文件的C++程序?

c++ - 是否允许编译器优化掉局部 volatile 变量?

名称文本字段的正则表达式 - 不允许使用数字并且不能留空

javascript - 仅当未隐藏其 div 时才需要文本输入?