【发布时间】:2018-08-24 15:35:11
【问题描述】:
假设我正在向浮点数输入数字,并且想要在输入 q 时退出循环。我想我可以检查输入“q”时分配了什么值,然后在循环中比较 for,但浮点数似乎有点不精确,所以这不起作用:
int main() {
float input;
bool exit = true;
do{
cin >> input;
if (input == -1.07974e+08) {
exit=false;
continue;
}
input = 0;
} while (exit);
我能想到的唯一方法(例如,在输入数字时检查一个字母)是将每个输入保存为一个字符串,比较它,并在每次我需要工作时使用类似 atof() 的东西跟他们。但是,当字母应该是异常时,为每个输入运行解析器似乎效率很低。
有什么想法吗?
【问题讨论】:
-
顺便说一句,有一个名为
exit的变量,其值应该是false以退出循环。逻辑应该是相反的:true意味着退出循环,测试变为while (!exit)。
标签: c++ loops floating-point char