我不明白,爲什麼在步驟3中cin >> W;
被省略,如果我輸入的不是數字(即's')。爲什麼步驟3中的std :: cin被忽略?
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
short W = -1;
cout << "step 1) W = " << W << endl;
cout << "give a number: ";
cin >> W;
if (cin.fail())
{
cout << "ERROR, bad number" << endl;
W = -1;
cout << endl << "step 2) W == " << W << endl;
cin.clear();
}
cout << endl << "step 3) W == " << W << endl;
cout << "give a number: ";
cin >> W;
cout << endl << "step 4) W == " << W << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
我認爲這段代碼更多的是關於如何使用'cin >>'和'cout <<'。不用說,這是一個相當可怕的代碼;所以不要用它作爲你的靈感。 – notnoop 2010-01-06 13:07:32
notnoop:也許它是horrbile,但我想明白爲什麼它的工作方式,而不是爲什麼它看起來像這麼可怕.. – qlf00n 2010-01-06 13:13:34
不要忘記接受Steffen的答案,如果它解決了你的問題。 – Bill 2010-01-06 14:59:59