1. 程式人生 > >C語言中一些常用IO函式的總結

C語言中一些常用IO函式的總結

scanf()函式格式化讀入函式,採用轉換說明匹配

scanf()通過%的形式對資料進行讀入,可以一次讀入多個數據。scanf的實現依靠指標所以有如下兩條規則:

1、scanf()讀入基本資料型別時,需要在變數名前加&。

2、scanf()讀入字串陣列時,不需要加。

如scanf("%d",&a),一次讀入一個整型資料,scanf("%d%d",&a,&b),一次讀入兩個資料,在輸入兩個資料時,遇到第一個空白符號結束讀入,開始第二個資料讀入。同時,scanf()函式在讀入單個字元時scanf("%c",&a)時,要小心緩衝區中空格,換行符等被讀入。可以在百分號前加入空格過濾,具體與scanf()的實現有關。

scanf("%s",name)讀入字串,但是如果字串中有空白符,則讀到空白符結束。scanf()函式使用空白、製表符、換行符、空格把輸入分成多個欄位,從而完成對多個欄位的讀入。在依次把轉換說明和欄位匹配時跳過空白等。

在使用scanf()函式讀入時,應該避免用於讀入帶空白等字元的欄位。另外應該對scanf()函式發生不匹配時,無限佔用緩衝緩衝區進行處理,可用兩種方法,對scanf()返回值進行檢查,若不匹配則直接退出。或者重新整理緩衝區。

getchar()函式用於從輸入佇列中讀入下一個字元,沒有任何引數。如:ch=getchar();

gets()函式,讀取整行輸入,直至遇到換行符或者結束,然後i丟棄換行符,儲存其餘的字元到字串陣列,但是此函式不檢查陣列是否裝得下整行的字元,容易造成溢位。

處理方法: