C語言使用scanf連續輸入字串出現的問題

2021-10-13 03:22:55 字數 724 閱讀 1483

#include

intmain()

一段看上去很簡單的**,即使是c語言初學者也能看懂。

可是在執行的時候卻出現了問題:

①輸入a後按下回車

②用空格隔開之後再按下回車

相信和我一樣的大部分初學者,看著自己天衣無縫的**,百思不得其解。

解決方法

①在第二個%c前加上空格,來抵消之前輸入的空格/回車

#include

intmain()

#include

intmain()

③用fflush清空緩衝區

#include

intmain()

④用getchar吸收字元

#include

intmain()

除方法①以外,其他三種方法不僅在使用scanf時有效,在使用getchar碰到類似問題的時候也有效,有興趣的讀者可以自行嘗試。

C語言使用scanf輸入

scanf 函式結構 scanf 函式被用來從stdin讀入資料,並且在程式中儲存資料。預設,這個stdin流是來著鍵盤輸入。scanf 的函式結構與printf 類似 int i scanf d i d 是乙個佔位符,說明這個地方有乙個變數,並且為整型變數 是個位址符,表明這個地方放置位址,i的意...

C語言裡的scanf連續輸入出錯問題

今天在看 時發現乙個有趣的東西,下面看一段 可以看到輸入輸出出現了問題,那是什麼問題呢,經過網上查閱應該是快取的問題,就是說第一次輸入account時的enter回車也被快取到了裡面,所以說清一下快取就可以解決這個問題,清理剩下的快取有三種方法,分別是利用系統自帶的fflush方法 再次讀取乙個字元...

c語言基礎,關於gets與scanf輸入字串

我現在也是乙個小白吧,這是第一次寫部落格,以後要堅持,希望能對初學者有一些幫助,認識gets與scanf。gets讀入字串時,直到換行符結束,但換行符會被丟棄,然後在末尾自動新增 0 而scanf讀入字串時,需要用 s,然後輸入時如果輸入了空格會認為字串結束,如果還有輸入項,空格後的字元將作為下乙個...