0

このコードは数字のみを受け入れることを想定しており、数字は正確に 12 個の数字でなければなりません。前者は機能していますが、後者は機能していません。ユーザーは 13 個の数字を入力しますが、エラーは表示されません。

 std::string line;
    double d;
    while (std::getline(std::cin, line))
    {
        std::stringstream ss(line);
        if (ss >> d || line.size() == 12)
        {
            if (ss.eof())
            {   // Success
                break;
            }
        }

        std::cout << "Error!" << std::endl;
    }

誰かがこれを機能させるために私を助けてくれませんか? 前もって感謝します。

4

1 に答える 1

4

orの代わりにandを試してください:

if (ss >> d && line.size() == 12)
于 2012-12-07T19:02:54.410 に答える