[鋼彈] 單班計程2-1

看板b96902HW作者 (歐拉)時間16年前 (2007/10/15 22:31), 編輯推噓6(605)
留言11則, 6人參與, 最新討論串1/3 (看更多)
請問一下 為什麼我用while( (scanf("%c%d%d",&x,&i,&h))!= EOF ){ 寫 要按三次^Z才可以把程式終止呢? 有別的辦法可以按一次就讓他停下來嗎? 搞了很久還是沒分數@@ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.223.91

10/15 22:41, , 1F
我是讀第一個字元看是不是EOF 再讀兩個數字...
10/15 22:41, 1F

10/15 22:54, , 2F
因為你的scanf是一次scan三個變數後,它的函數才結束
10/15 22:54, 2F

10/15 22:56, , 3F
也就是說,必須讀3個值才會判斷後面的eof
10/15 22:56, 3F

10/15 23:03, , 4F
嗯嗯 我後來把他分開讀 可是還是需要輸入兩次^Z才可以
10/15 23:03, 4F

10/15 23:03, , 5F
讓他停下來,要怎樣寫才可以一次就結束呢?
10/15 23:03, 5F

10/15 23:13, , 6F
我還以為喔拉拉什麼時候跑到單班去了XD
10/15 23:13, 6F

10/15 23:20, , 7F
那是scanf讀字串的部份的bug 若是讀字串會讀2次
10/15 23:20, 7F

10/15 23:21, , 8F
所以需要兩個^Z %s和%c都會有這個現像
10/15 23:21, 8F

10/16 00:09, , 9F
我是雙班的
10/16 00:09, 9F

10/16 00:10, , 10F
我斗膽問一下如果寫scanf("%c%d%d",,&x,&i,&h)<1會怎樣ꄠ
10/16 00:10, 10F

10/16 00:11, , 11F
附贈免費的逗號.....
10/16 00:11, 11F
文章代碼(AID): #174tcnWf (b96902HW)
討論串 (同標題文章)
文章代碼(AID): #174tcnWf (b96902HW)