【发布时间】:2016-11-11 06:10:31
【问题描述】:
我觉得我在做一些非常愚蠢的错误。我只是想让程序在用户输入非双精度时告诉用户,并继续循环回到您输入值的 cin。
我希望用户输入任何数字。然后必须做这个微不足道的数学并重复。它在这方面工作正常,当输入一些意外的输入(如字符)时,问题就出现了。然后输入以某种方式将其发送到一个循环中,在该循环中循环数学问题,而不是仅仅告诉用户他们必须输入一个数字并循环回 cin 输入一个新数字。
#include <iostream>
#include <cstdlib>
using std::cout; using std::cin; using std::endl;
long double domath(long double i)
{
cout << i << "/" << 2 << "=" << i/2 << endl;
cout << i/2 << "*" << 10 << "=" << (i/2)*10 << endl << endl;
cout << 5 << "*" << i << "=" << 5*i << "\n\n";
return 0;
}
int main()
{
long double in = 0;
while(true)
{
cin >> in;
if (cin.fail()) {
in = char(int(in));
}
domath(in);
}
system("pause>nul");
return 0;
}
【问题讨论】:
-
请提供样本输入、预期和实际输出。
-
请移除c标签。