我如何检查输入是否是一个int在c++

How do i check if input is an int in C++?

本文关键字:c++ 一个 int 输入 何检查 检查 是否是      更新时间:2023-10-16

如果输入是整数,我想将其设置为一个整数变量。

如果输入是字符串,我将把它设置为字符串变量,然后检查字符串是否为"quit"。

我不知道如何检查它。我一直在寻找内置功能,但一无所获。

while (true) {
    int numberEntered;
    string stringEntered; 
    cout << "enter a number to see if it is greater than 5: n or enter 'quit' to exit the program";
    //I don't know what to do below here
    cin >> ;
    if (stringEntered == "quit") {
        break;
    }
    if (numberEntered > 5) {
        cout << "that number is greater than 5" << endl;
    }
    else {
        cout << "not greater than 5" << endl;
    }
}
cin >> numberEntered;
if (!cin.fail())
{
   ...

可能更习惯地使用:

if (cin >> numberEntered)

他的回答很好。如果您想整齐地处理行后输入的垃圾,这里有另一种选择(这对您的情况来说更复杂,但如果您以后想扩展程序来处理许多不同的输入,那么这种方法可能会更简单)。

while( true )
{
    string stringEntered;
    cout << "enter a number to see if it is greater than 5: n or enter 'quit' to exit the program: " << flush;
// read the whole line, this ensures no garbage remains in the input stream
    getline(cin, stringEntered);
    if ( stringEntered == "quit" )
        break;
// this checks that a number was entered and nothing else
    istringstream iss(stringEntered);
    int numberEntered;
    char ch;
    if ( !(iss >> numberEntered) || (iss >> ch) )
    {
        cout << "please try again. ";
        continue;
    }
// process the number
    cout << "that number is " << (numberEntered > 5 ? "" : "not ")
            << "greater than 5." << endl;
}

你可能需要#include <sstream>