[問題] 希望輸入數字但輸入的是文字

看板C_and_CPP (C/C++)作者 (做遊戲的心)時間16年前 (2009/12/23 16:11), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串1/2 (看更多)
int i_piece;//玩家所輸入之數字 int inputOK = 1; do{ cout << "請輸入號碼(1~9)...."; cin >> i_piece; if(i_piece>0 && i_piece<10){//判斷是否介於1~9之間 if(i_board.arr[i_piece] == 0) {//判斷是否未放置棋子 i_board.last_put = i_piece; i_board.arr[i_piece] = 1; player_arr[player_count] = i_piece; player_count++; inputOK = 0; } else cout << "此位置已置放棋子,請選擇其它位置........" << endl; } else cout << "您輸入的並非1~9其中一個數字,再輸入一次..." << endl; }while(inputOK); 這是我做的井字遊戲的使用者輸入部份 但是我如果輸入非數字的資料(e.x 英文字母abc之類的) 就會進入無窮迴圈 且會一直顯示您輸入的並非1~9其中一個數字,再輸入一次... 請問問題出在哪裡呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.125.194.29

12/23 16:25, , 1F
試著在"...再輸入一次..."之後把輸入緩衝區抓光光看看.
12/23 16:25, 1F

12/23 21:58, , 2F
判段輸入是否是數字?
12/23 21:58, 2F

12/23 21:59, , 3F
沒注意到已經有人回文了XD
12/23 21:59, 3F
文章代碼(AID): #1BCT3482 (C_and_CPP)
文章代碼(AID): #1BCT3482 (C_and_CPP)