ユーザー入力(自然数が必要)を受け取り、逆数を出力するプログラムを作成する必要がある割り当てがあります。プログラムはそれを問題なく実行しますが、自然数ではない値を入力するときにプログラムがエラーを出さないようにする必要もあります。double 値を入力するか、数字の後に文字を入力すると、プログラムが終了します。残りの場合、プログラムは問題なく動作します。これらの問題の原因は何ですか?
int number;
char x = 'c';
while (x == 'c') {
cout << "Enter a number\n";
cin >> number;
while (!(cin.good()) || number < 1 || floor(number) != number) {
cin.clear();
cin.ignore(256,'\n');
cout << "Try again.\n";
cin >> number;
}
string reverse;
stringstream convert;
convert << number;
reverse = convert.str();
reverse = string (reverse.rbegin(),reverse.rend());
cout << "The reverse number for number " << number << " is " << reverse << endl;
cout << "If you want to continue using the program enter 'c',\nif you want to close the program enter anythin else\n";
cin >> x;
}