作者rexrexchian (rexrex)
看板C_and_CPP
標題[問題] 新手請教scanf用法
時間Tue Dec 12 16:41:13 2017
開發平台(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