检查两个独立输入时出错

时间:2016-09-29 01:35:55

标签: c++ function get stream cin

如果它们是整数,我试图检查两个单独的输入。我能够对一个输入进行错误检查,但如果我使用' get'我不太确定如何检查两个单独的输入。功能和两个输入都来自“cin'流。使用c ++。

我检查一个整数的代码如下所示。

#include <iostream>
using namespace std;

int main() {
int input;

cout << "Enter an integer: ";
cin >> input;

char next;
int x=0;

int done = 0;

while (!done){
    next = cin.get();
    if (next == ' ' || next == '\n'){
        cout << "The Integer that you have entered is: " << input << "\n";
        done = 1;
    }
    else if (next == '.'){
        cerr << "Error: Invalid Input. Not an Integer." << "\n";
        done = 1;
    }
    else{
        cerr << "Error: Invalid Input. Not a number." << "\n";
        done = 1;
    }
}

return 0;
}

1 个答案:

答案 0 :(得分:0)

您可以>>一直使用int,删除所有get()内容和字符处理,然后查看cin.fail()。例如(我将把它放到你的程序中并在循环中重复它作为练习):

int x;
cin >> x;
if (cin.fail())
    cout << "Not a valid integer." << endl;

您可以完全相同的方式处理所有后续输入。没有理由只将operator >>限制为第一个输入。