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

时间:2015-03-29 04:19:11

标签: c++ loops

我有这个程序,我试图保持循环,直到输入的内容是非整数。无论我输入非整数还是整数,程序仍会中断并结束。请帮忙

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

3 个答案:

答案 0 :(得分:1)

删除return(或稍后写一下)它会在while行之前破坏你的代码......

答案 1 :(得分:0)

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

#include <iostream>

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

答案 2 :(得分:0)

当您将数据定义为整数时,您只需要检查是否为cin 当cin得到输入它无法使用时,它会设置failbit:

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;
 }