輸入 輸出之間的區別

2021-07-23 06:58:52 字數 991 閱讀 2796

#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...