1。下面的程序,我想實(shí)現(xiàn)這樣的功能:輸入合法的數(shù)字即可退出,輸入錯(cuò)誤則重新輸入。#include <iostream>using namespace std;int main(){ int a;while(!(cin>>a)){cout<<"Error!Input again!"<<endl;} return 0;}若輸入的是數(shù)字,程序能退出??墒钱?dāng)輸入字符的時(shí)候,就會(huì)不斷地輸出Error!Input again!進(jìn)入了死循環(huán)。請(qǐng)問為什么會(huì)這樣。要怎么才能解決。加了continue語句仍然是那樣其實(shí)是這樣的,我本來的程序是要根據(jù)用戶輸入的選項(xiàng)來進(jìn)行調(diào)用某些函數(shù)的,選擇只有1.2.3.4這樣。我想。如果用戶輸入了字母或其他的字符,那么程序就不能正常運(yùn)行了。所以,如果用戶輸入了字符的話,則重新輸入數(shù)據(jù)3樓的,其實(shí)我是想輸入錯(cuò)誤就提出,并不退出4樓的,你的結(jié)果可以用,可是我想知道的使為什么我原來的用法不行。這才是最重要的.5樓的方案也行,不過我正的想知道為什么原來我的那個(gè)不行(補(bǔ)基礎(chǔ))。
2 回答

慕田峪4524236
TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超5個(gè)贊
cin>>a;鍵盤讀入數(shù)據(jù)賦值給a;
cin:C++編程語言互換流中的標(biāo)準(zhǔn)輸入流,需要iostream.h支持,程序的輸入都建有一個(gè)緩沖區(qū),即輸入緩沖區(qū)。一次輸入過程是這樣的,當(dāng)一次鍵盤輸入結(jié)束時(shí)會(huì)將輸入的數(shù)據(jù)存入輸入緩沖區(qū),而cin函數(shù)直接從輸入緩沖區(qū)中取數(shù)據(jù)。
1234567891011 | //例如: # include<iostream> using namespace std; int main( void ) { int a; cout<< "請(qǐng)輸入一個(gè)數(shù)字,按回車結(jié)束" <<endl; cin>>a; //輸入并賦值 cout<<a<<endl; //輸出 return 0; } |
- 2 回答
- 0 關(guān)注
- 787 瀏覽
添加回答
舉報(bào)
0/150
提交
取消