私は何かが本当にばかげて間違っているように感じる。私はちょうどあなたがnon-doublesに入っている時にユーザーに伝えて、値を入力しているcinにループバックしてほしいと思っています。なぜこれは文字で無限ループになりますが、倍精度ではありませんか?
任意の数値を入力します。そして、この些細な数学と本質的なことを本質的にやりなさい。その点ではうまく動作しますが、charのような予期しない入力があった場合に問題が発生します。何らかの形で入力がループに送られて、数字を入力して新しい番号で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;
}
サンプル入力、期待値と実際の出力を入力してください。 –
[tag:c]タグを削除してください。 –
cinをクリアする必要があります。http://stackoverflow.com/questions/17928865/correct-way-to-use-cin-fail –