我试图在我的main.cpp文件中使用的函数有问题。它被称为getFloat,只需要从用户那里获得一个浮动,但是当用户输入一个非浮动值时(例如。( "Thomas“),即使我对这类问题有我通常的保护(cin.ignore(100,‘n’;cin.clear();等等),这个程序还是被cin卡住了。
我认为这个问题与ampersand...the函数引用的值有关,该值试图将非浮点数返回到另一个文件中的浮点类型。我的作品是这样的:
来自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语句会被卡住吗?
发布于 2018-04-04 05:21:10
在尝试再次读取输入之前,请调用cin.ignore()。也就是说。
cin.clear();
cin.ignore(1000, '\n');
cin >> value;https://stackoverflow.com/questions/49643243
复制相似问题