[問題]關於while (已解決)

看板C_and_CPP (C/C++)作者 (AG)時間16年前 (2009/03/13 20:44), 編輯推噓6(608)
留言14則, 5人參與, 最新討論串1/1
while (1){ scanf ("%c",&ch); if (ch == '#'){ break; } } 當我輸入一個變數ch(不為#) if 判斷完並非為 # 之後 照理說應該要重新開始 while 讓我重新輸入一次ch吧 不過當我輸入一個 ch 之後 while 卻是會執行兩次才又重新讓我輸入 讓我有點摸不著頭緒 請問我犯了什麼錯呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.204.2.118

03/13 20:51, , 1F
break跳開的是迴圈而不是大括弧
03/13 20:51, 1F

03/13 20:53, , 2F
我是要讓他跳開迴圈沒錯阿
03/13 20:53, 2F

03/13 20:58, , 3F
跳開了就不會再重新開始while你想用的是continue;?
03/13 20:58, 3F

03/13 20:59, , 4F
跳開沒問題阿 我是想問我在沒有break的時候 為什麼
03/13 20:59, 4F

03/13 21:00, , 5F
while 卻會先執行兩次才讓我輸入ch呢? XD
03/13 21:00, 5F

03/13 21:05, , 6F
抱歉誤會你的條件;另,我不知道為啥呵呵= ="
03/13 21:05, 6F

03/13 21:08, , 7F
哈 不會啦 謝謝你看了我的問題 我自己也很疑惑= =
03/13 21:08, 7F

03/13 21:12, , 8F
因為 enter 也會產生一個碼
03/13 21:12, 8F

03/13 21:14, , 9F
了解了!!! 謝謝
03/13 21:14, 9F

03/13 21:45, , 10F
試試fflush(stdin)能不能把\n給洗掉吧XD
03/13 21:45, 10F

03/13 22:18, , 11F
^^^^^^^^^^^^^ VC extension
03/13 22:18, 11F

03/13 22:27, , 12F
fflush是ANSI C的stdio裡的lib吧?? Dev-C++測也OK啊@_@"
03/13 22:27, 12F

03/13 23:38, , 13F
標準未定義它用在input stream時的行為
03/13 23:38, 13F

03/14 10:05, , 14F
原來如此~~謝謝賜教:)
03/14 10:05, 14F
文章代碼(AID): #19kbKLbW (C_and_CPP)
文章代碼(AID): #19kbKLbW (C_and_CPP)