[問題] cin的合法性檢查
剛學C++,在寫一些範例
一開始有宣告 int a;
然後cin >> a;
如果我輸入char或是float整個程式就會崩潰
爬文有爬到可以用cin.fail()當條件去做迴圈
重新設定cin的讀取狀態跟留下的垃圾
但是這只解決了輸入char的部分
如果我輸入float程式一樣崩潰給我看...
稍微Google了一下
很多問答都說這樣子會把整數部分存入影響準確度
但似乎沒人提到這樣會讓程式崩潰...
(我是做猜數字遊戲)
do
{
cout << "輸入猜測次數額度:";
cin >> round;
while(cin.fail())
{
cin.clear();
cin.sync();
}
if (round<1)
cout << "猜的次數必須是數字且大於1,請重新輸入\n\n";
}while (round<1);
執行後如果輸入小數,整個迴圈就跑到爆掉
不斷的在螢幕上印出 "猜的次數必須是數字且大於1,請重新輸入"
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 36.224.106.185
推
03/24 22:14, , 1F
03/24 22:14, 1F
不太懂,我試試~3Q
推
03/24 22:32, , 2F
03/24 22:32, 2F
→
03/24 22:32, , 3F
03/24 22:32, 3F
依舊無法,一樣處於迴圈爆走狀態 QQ
※ 編輯: LSEG 來自: 36.224.106.185 (03/24 23:16)
推
03/25 00:03, , 4F
03/25 00:03, 4F
推
03/25 00:05, , 5F
03/25 00:05, 5F
推
03/29 00:03, , 6F
03/29 00:03, 6F
→
03/29 00:04, , 7F
03/29 00:04, 7F
→
03/29 00:05, , 8F
03/29 00:05, 8F
→
03/29 00:10, , 9F
03/29 00:10, 9F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章