作者christianSK (AG)
看板C_and_CPP
標題[問題]關於while
時間Fri Mar 13 20:44:04 2009
while (1){
scanf ("%c",&ch);
if (ch == '#'){
break;
}
}
當我輸入一個變數ch(不為#)
if 判斷完並非為 # 之後
照理說應該要重新開始 while 讓我重新輸入一次ch吧
不過當我輸入一個 ch 之後 while 卻是會執行兩次才又重新讓我輸入
讓我有點摸不著頭緒
請問我犯了什麼錯呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.204.2.118
1F:→ snowlike:break跳開的是迴圈而不是大括弧 03/13 20:51
2F:→ christianSK:我是要讓他跳開迴圈沒錯阿 03/13 20:53
3F:→ snowlike:跳開了就不會再重新開始while你想用的是continue;? 03/13 20:58
4F:→ christianSK:跳開沒問題阿 我是想問我在沒有break的時候 為什麼 03/13 20:59
5F:→ christianSK:while 卻會先執行兩次才讓我輸入ch呢? XD 03/13 21:00
6F:→ snowlike:抱歉誤會你的條件;另,我不知道為啥呵呵= =" 03/13 21:05
7F:→ christianSK:哈 不會啦 謝謝你看了我的問題 我自己也很疑惑= = 03/13 21:08
8F:推 Ebergies:因為 enter 也會產生一個碼 03/13 21:12
9F:→ christianSK:了解了!!! 謝謝 03/13 21:14
10F:推 VictorTom:試試fflush(stdin)能不能把\n給洗掉吧XD 03/13 21:45
11F:推 legnaleurc: ^^^^^^^^^^^^^ VC extension 03/13 22:18
12F:推 VictorTom:fflush是ANSI C的stdio裡的lib吧?? Dev-C++測也OK啊@_@" 03/13 22:27
13F:推 legnaleurc:標準未定義它用在input stream時的行為 03/13 23:38
14F:推 VictorTom:原來如此~~謝謝賜教:) 03/14 10:05