出處:#includeint main()
兩者在接受字串時:
1.不同點:
scanf不能接受空格、製表符tab、回車等;而gets能夠接受空格、製表符tab和回車等;
scanf :當遇到回車,空格和tab鍵會自動在字串後面新增』\0』,但是回車,空格和tab鍵仍會留在輸入的緩衝區中。gets:可接受回車鍵之前輸入的所有字元,並用』\0』替代 『\n』.回車鍵不會留在輸入緩衝區中
從鍵盤輸入字串 asd df時,遇到空格,scanf()就認為輸入結束了,所以a中存放的字串是 『asd\0』。
從鍵盤輸入字串 asd df時,gets()遇到』\n』才認為是結束輸入了,所以a中存放的是』asd df\0』。
輸入asdf回車,因為scanf會將回車保留在緩衝區中,所以回車會緊接著被c取得而不需要再額外輸入,所以a中儲存的是』asdf\0』,字元c=』\n』。
結果如下:
接著輸入as df回車,因為gets會將』\n』替換成』\0』,所以b字串中保留的是』as df\0』,並且還是要繼續輸入d的值:
最後輸入d的值:
相同點:
兩者都屬於stdio.h這個標頭檔案
都能輸出字串
不同點:
puts()在輸出字串時會將』\0』自動轉換成』\n』進行輸出,也就是說,puts方法輸出完字串後會自動換行。
輸入輸出類的區別
如果你是讀取文字類資料,建議採用reader類,如inputstreamreader或bufferedreader之類的,可以省去這個疑慮。如果非要用stream流,讀取byte陣列,建議將資料全部讀上來再轉換為string,不然你必須要知道該檔案的編碼格式。fileinputstream 適用於位...
常用技巧 輸入輸出優化 輸入輸出外掛程式
我們知道cin cout是比較慢的,不過它們可以加速。在 中加入這兩句即可 std ios sync with stdio false std cin.tie 0 加速過後cin的速度與scanf的速度近似 當然,加速過後就不要混用print和cout,scanf和cin了。因為不同步,後果會很嚴重...
C 的輸入輸出
該檔案定義了cin 標準輸入流 cout 標準輸出流 cerr 非緩衝標準錯誤流 和clog物件 緩衝標準錯誤流 該檔案通過所謂的引數化的流操作器 例如setw和setprecision 進行標準化的輸出操作。該檔案控制檔案處理。1 cout 標準輸出流 是ostream類的乙個例項。預設情況下,c...