0

ユーザーが入力した入力のタイプを確認する必要があります。目的のタイプでない場合は、エラー メッセージを出力する必要があります。私のコードは次のとおりです。

int ClassInput::inputInt(QString str)
{
    signed int l;
    std::cout << str.toStdString();
    std::cin>>l;

    while(!l)
    {
        eh.handleError(1);
        std::cin>>l;
        cin.clear ();
        cin.ignore (1000, '\n');
    }
    return l;
}

しかし問題は、float 値が入力されているときにエラー メッセージが表示されないことです。また、次のステップに進み、あたかも正しい入力が入力されたかのように計算を実行します。

エラーステートメントを無限に出力する場合があります。誰でも私のコードを修正できますか?

4

2 に答える 2

1

typeinfoはあなたが探しているものだと思います。これは、ユーザーからの期待される入力として int の場合のコード例です。

std::cin>>l;
QString input = typeid(l).name();
if(input.compare("int")) continue;
于 2013-12-19T15:43:09.197 に答える