[問題] EOF 要輸入兩次

作者: FFranKK122 (法蘭克的兩難)   2017-07-15 13:49:57
開發平台(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
會有這個問題 純粹好奇
問題來自 交大開放課程 鄭昌杰老師第二章的講義
作者: Ommm5566 (56天團)   2017-07-15 21:05:00
愛惜生命遠離dev
作者: Hazukashiine (私は幸せです)   2017-07-16 01:27:00
還是可以用啦 但是gcc記得要更新 只是我能不能換給我 notepad 我也能打 code XD^ 不知道
作者: qscgy4 (有點厲害)   2017-07-16 07:54:00
scan 我是不知道。但是以一般讀檔而言,eof旗標是必須讀到底,再讀一次所產生的。
作者: MOONRAKER (㊣牛鶴鰻毛人)   2017-07-17 11:43:00
在linux環境下有時^D後也要enter 不要管這種小事

Links booklink

Contact Us: admin [ a t ] ucptt.com