将 cin 设为只读数字
使用 cin 强制进行数字输入可能会带来挑战,尤其是在处理混合输入类型时。本文研究了一种解决方案,以确保 cin 只接受数字值。
在提供的代码中,while 循环尝试通过忽略非数字字符来纠正无效输入。然而,这种方法在处理多个输入时面临局限性。
解决方案:使用 std::getline 和 std::string
要克服这个障碍,我们可以使用更全面的方法:
使用 std::stringstream: 将字符串转换为双精度型🎜>
验证转换:
#include <sstream> #include <string> 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 中的 cin 只接受数字输入?的详细内容。更多信息请关注PHP中文网其他相关文章!