[問題] 新手請教scanf用法

作者: rexrexchian (rexrex)   2017-12-12 16:41:13
開發平台(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怎麼不會把第四句跟第五句讀取進去?
希望版上的強人能夠提點一下...
先謝謝底下回覆的版友
作者: MOONRAKER (㊣牛鶴鰻毛人)   2017-12-12 17:28:00
你要輸入EOF他才會知道有EOF整個檔案輸入最後會有EOF 不是檔案的話你要自己按可能是CTRL-D (*nix) 或CTRL-Z (DOS)
作者: jerryh001   2017-12-12 17:31:00
手動按ctrl+z 或是讀檔結尾 就是EOF

Links booklink

Contact Us: admin [ a t ] ucptt.com