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

试试and而不是or

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