问题:
提供的代码旨在防止非数字字符接受作为输入。但是,它无法处理输入在有效数字后包含字符的情况。
建议的解决方案:
要解决此问题,我们建议采用不同的方法使用 std::getline 和 std::string。
代码片段:
#include <string> #include <sstream> int main() { std::string line; double d; while (std::getline(std::cin, line)) { std::stringstream ss(line); if (ss >> d) { if (ss.eof()) { // Success break; } } std::cout << "Error!" << std::endl; } std::cout << "Finally: " << d << std::endl; }
说明:
此修订后的解决方案遵循以下步骤:
这种方法确保仅接受有效的实数作为输入,无论输入中是否有任何尾随字符或空格。
以上是如何使用 C 流可靠地处理无效数字输入?的详细内容。更多信息请关注PHP中文网其他相关文章!