[問題] 新手請教scanf用法

看板C_and_CPP (C/C++)作者 (rexrex)時間8年前 (2017/12/12 16:41), 編輯推噓1(103)
留言4則, 2人參與, 8年前最新討論串1/1
開發平台(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

12/12 17:28, 8年前 , 1F
你要輸入EOF他才會知道有EOF
12/12 17:28, 1F

12/12 17:29, 8年前 , 2F
整個檔案輸入最後會有EOF 不是檔案的話你要自己按
12/12 17:29, 2F

12/12 17:30, 8年前 , 3F
可能是CTRL-D (*nix) 或CTRL-Z (DOS)
12/12 17:30, 3F

12/12 17:31, 8年前 , 4F
手動按ctrl+z 或是讀檔結尾 就是EOF
12/12 17:31, 4F
文章代碼(AID): #1QBvOieS (C_and_CPP)
文章代碼(AID): #1QBvOieS (C_and_CPP)