以前我是C程序員(想知道更多關於系統編程的知識,但不想進入彙編,所以我選擇C),但後來在我的大學I必須採取C++,我實際上很難使用cin
和cout
對象,因爲它與我信任的printf()
,scanf()
,getchar()
宏相比有一些變化。這是代碼。使用cin對象進行輸入驗證並清除緩衝區(C++)
守則
int main(void)
{
using namespace std;
cout << "What is the number?\n\n";
cout << "#Number :";
cin >> num;
while(cin.fail())
{
cin.clear();
cin.ignore(1000 , '\n');
cout << "Please enter a number\n\n";
cout << "#Number :";
cin >> num;
}
return 0;
}
問題
1)我想這個代碼,請從用戶(小於號和大於或等於0),當用戶輸入一個字符或字符串時,我希望它提醒用戶,清除輸入緩衝區並重新提示用戶輸入新的值e直到它是一個數字。
2.)所以我只是用google搜索並找到一個頁面傳播方法,所以我只是按照方式,但它失敗了。我不知道爲什麼一旦我運行這個代碼,鍵入一個字符它將導致無限循環的輸出Please enter a number
。在這段代碼中我犯的任何錯誤?
謝謝你花時間閱讀我的問題
P/S:我使用的代碼塊與MinGW的編譯器。
好的,謝謝,無論如何,在原始的源代碼,我確實聲明:)只是在這裏我忘了添加行 – caramel1995