通过 cin 验证
Validation via cin
我是 C++ 的新手,正在试验...
我正在尝试通过 cin
:
验证输入
if(!cin){
cin.clear(); // without this: infinite
cin.ignore();
returnText = "Sorry, I can`t do that. :(";
}else if(input == sum){
returnText = "Great, you did it! :)";
}else{
returnText = "Sorry, the correct result would have been " + to_string(sum) + ". :(";
}
cout << returnText << "\n\n";
它确实有效(不知何故),除了它为每个无效字符循环。
有没有办法只在按 Enter 后检查?然后对于整个 cin
而不是字符?
(可能很傻,因为它代表字符,但会很好)
你应该使用
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
而不是
cin.ignore();
忽略直到换行符,而不是只忽略一个字符。
我是 C++ 的新手,正在试验...
我正在尝试通过 cin
:
if(!cin){
cin.clear(); // without this: infinite
cin.ignore();
returnText = "Sorry, I can`t do that. :(";
}else if(input == sum){
returnText = "Great, you did it! :)";
}else{
returnText = "Sorry, the correct result would have been " + to_string(sum) + ". :(";
}
cout << returnText << "\n\n";
它确实有效(不知何故),除了它为每个无效字符循环。
有没有办法只在按 Enter 后检查?然后对于整个 cin
而不是字符?
(可能很傻,因为它代表字符,但会很好)
你应该使用
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
而不是
cin.ignore();
忽略直到换行符,而不是只忽略一个字符。