看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: Win10, Linux, ...) 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) C 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 假設輸入一句字串,而只取出想要的數值 餵入的資料(Input): 比如輸入 A is 5 years old 則取出 A 跟 5 兩個值 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) scanf("%c is %d years old", &a, &years); 補充說明(Supplement): 目前這樣寫是正確的,但不太清楚為什麼這樣寫OK 是說scanf如果遇到一樣的字元會自動忽略嗎(比如說...is...years old) 還有寫題目時會遇到要用到 scanf("") != EOF 電腦是怎麼判斷什麼時候會終止的? 比如說測資是 A is 5 years old B is 8 years old C is 17 years old B is older than A C is older than A scanf怎麼不會把第四句跟第五句讀取進去? 希望版上的強人能夠提點一下... 先謝謝底下回覆的版友 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.119.121.6 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1513068076.A.A1C.html
MOONRAKER: 你要輸入EOF他才會知道有EOF 12/12 17:28
MOONRAKER: 整個檔案輸入最後會有EOF 不是檔案的話你要自己按 12/12 17:29
MOONRAKER: 可能是CTRL-D (*nix) 或CTRL-Z (DOS) 12/12 17:30
jerryh001: 手動按ctrl+z 或是讀檔結尾 就是EOF 12/12 17:31