作者FFranKK122 (法蘭克的兩難)
看板C_and_CPP
標題[問題] EOF 要輸入兩次
時間Sat Jul 15 13:49:57 2017
開發平台(Platform): (Ex: Win10, Linux, ...)
Win7
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
Dev c++
問題(Question):
用scanf讀一個整數 在%d前面打一個空格
使用EOF當終止條件 ctrl+z要輸入兩次
while( scanf(" %d", &x) != EOF ){
printf("%d\n", x);
}
預期的正確結果(Expected Output):
按一次 ctrl+z 可以結束程式
錯誤結果(Wrong Output):
要按兩次 ctrl+z
會有這個問題 純粹好奇
問題來自 交大開放課程 鄭昌杰老師第二章的講義
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.42.95.188
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1500097799.A.DCE.html
※ 編輯: FFranKK122 (114.42.95.188), 07/15/2017 13:50:49
1F:→ Ommm5566: 愛惜生命遠離dev 07/15 21:05
2F:→ Hazukashiine: 還是可以用啦 但是gcc記得要更新 只是我能不能換 07/16 01:27
3F:→ Hazukashiine: 給我 notepad 我也能打 code XD 07/16 01:27
4F:→ Hazukashiine: ^ 不知道 07/16 01:28
5F:推 qscgy4: scan 我是不知道。但是以一般讀檔而言,eof旗標是必須讀到 07/16 07:54
6F:→ qscgy4: 底,再讀一次所產生的。 07/16 07:54
7F:→ MOONRAKER: 在linux環境下有時^D後也要enter 不要管這種小事 07/17 11:43