如何保持循环直到输入非整数

How to keep looping until non-integer is entered

本文关键字:输入 整数 何保持 循环      更新时间:2023-10-16

我有一个程序,我试图保持循环,直到输入的东西是非整数。无论我输入的是非整数还是整数,程序仍然会中断并结束。请帮助

int data;
do
{
    cout<<"enter data: ";
    cin>>data;
    cout<<"yes"<<endl;
    return data;
} while(cin.good());

删除return(或在while之后写入)它会在while行之前破坏代码。。。

这个简单的代码片段应该可以正常工作。

#include <iostream>
int main() 
{
    int data;
    while(std::cin >> data)
    {
        std::cout << data << std::endl;
    }
}

当您将数据定义为整数时,只需检查是否为cin当cin得到它不能使用的输入时,它设置故障位:

int data 
while(true)
{
    cout<<"enter data: ";
    cin>>data;   
    if(!cin) // or if(cin.fail())
    {
        // user didn't input a number
        break;
    }
     cout<<"yes"<<endl;
 }