cin輸入問題

c++ cin當輸入錯誤參數時,如果想再次輸入,一般寫個while循環,此時由於cin的錯誤參數會一直存在所以進入死循環,解決方法有兩種,不過不同的c++標準可能不一樣。

第一種方法: fflush(stdin); cin.clear();

第二種方法: cin.ignore(1024, '\n'); cin.clear();


while(1){				//循環是爲了錯誤輸入時,一直可以輸入
		if(!(cin >> n >> t)){
			cout << "輸入參數有錯!請輸入正整數!" << endl;
			fflush(stdin);		//清空標準輸入,防止死循環
			cin.clear();
			//cin.ignore(1024,'\n');
			//cin.ignore();
			continue;
		}
		
		if (n < 1 || t < 1)		//若爲負數
		{
			cout << "請輸入正整數!" << endl;
			continue;
		}
		break;
	}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章