我在main.cpp文件中尝试使用的函数有问题。它被称为getFloat并且足够从用户获得一个浮点数,但是当用户输入非浮点值时(例如" Thomas Harding"),即使我有我惯常的保护,程序也会被卡在cin上针对这类问题(cin.ignore(100,' \ n&#39 ;; cin.clear();等)
我认为这个问题与&符号引用的值有关...函数试图将非浮点值返回到另一个文件中的float类型。我的工作看起来像这样:
[来自main.cpp]
#include "getFloat.hpp"
...
...
...
...
...
...
getFloat(load);
[在getFloat.cpp]
void getFloat(float &value)
{
cin >> value;
while (cin.fail())
{
cin.clear();
cin >> value;
cin.ignore(1000, '\n');
}
}
当我输入非数字值时,有人能看出为什么这会卡在cin语句中吗?
答案 0 :(得分:1)
在尝试再次读取输入之前调用function solve(a0, a1, a2, b0, b1, b2) {
var s = [0, 0];
if (a0 > b0) {s[0] += 1;}
if (a1 > b1) {s[0] += 1;}
if (a2 > b2) {s[0] += 1;}
if (a0 < b0) {s[1] += 1;}
if (a1 < b1) {s[1] += 1;}
if (a2 < b2) {s[1] += 1;}
return s;
}
。即
cin.ignore()