此代码假设只接受数字,数字必须正好是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;
}
请有人帮我这个让它运作起来吗?提前谢谢。
答案 0 :(得分:4)
尝试和,而不是或:
if (ss >> d && line.size() == 12)