C語言中的輸入輸出函式(學習筆記)
阿新 • • 發佈:2018-12-16
文章目錄
c語言中的基本輸入與輸出函式
1.格式化輸入輸出函式
1.1printf()函式
大家很熟悉了,這裡不多加介紹
1.2scanf()函式
- 呼叫格式為:
scanf("<格式化字串>",<地址表>);
- scanf的返回值
scanf()函式返回成功賦值的資料項數
讀到檔案末尾出錯時則返回EOF。
如:
scanf("%d%d", &a, &b);
如果a和b都被成功讀入,那麼scanf的返回值就是2
如果只有a被成功讀入,返回值為1
如果a和b都未被成功讀入,返回值為0
如果遇到錯誤或遇到end of file,返回值為EOF
且返回值為int型
空白符:空白字元會使scanf()函式在讀操作中略去輸入中的一個或多個空白字元。
非空白符:一個非空白字元會使scanf()函式在讀入時剔除掉與這個非空白字元相同的字元
2.非格式化的輸入輸出函式
2.1puts()和gets()函式
2.1.1puts()函式
- 標頭檔案為
stdio.h
- puts()函式用來向標準輸出裝置(螢幕)寫字串並換行
- 呼叫格式為
puts(s)
,其中s為字串變數(字串陣列名或字串指標)。puts()函式的作用於printf("%s\n",s)
相同
例如:
#include <stdio.h>
#include <string.h>
int main(void)
{
char s[20],* f;
strcpy(s,"Hello!");
f="Thank you " ;
puts(s);
puts(f);
return 0;
}
說明
- (1) puts()函式只能輸出字串,不能輸出數值或者進行格式變換
- (2) 可以將字串直接寫入puts()函式中。如
puts("Hello,Tuuu")
2.1.2gets()函式
- 標頭檔案為
stdio.h
char * gets(char * str);
- gets()函式用來向標準輸入裝置(鍵盤)讀取字串直到回車結束,不同於fgets,它沒有指定num,所以需要注意字元陣列str的大小
- 呼叫格式為
gets(s)
,其中s為字串變數(字串陣列名或者字串指標)。gets()函式的作用於scanf("%s",&s)
函式作用類似,使用``scanf(“%s”,&s) 函式輸入字串時存在一個問題, 就是如果輸入了空格會認為輸入字串結束,空格後的字元將作為下一個輸入項處理, 但gets() 函式將接收輸入的整個字串直到回車為止。
2.2putchar()、getch()、getche()和getchar()函式,附fgets函式
2.2.1.putchar()函式
等同於printf("%c",ch)
2.2.2getch()函式、getche()函式
- 標頭檔案
conio.h
- 並非標準C中的函式,建議還是使用getchar()
int getch(void)
當你用鍵盤輸入的時候,螢幕不顯示你所輸入的字元(不帶回顯),不需要按回車,程式自動繼續進行int getche(void)
螢幕顯示你所輸入與的字元(帶回顯),不需要按回車,程式自動繼續進行
2.2.3.getchar()函式
- 標頭檔案
stdio.h
int getchar(void)
從標準輸入stdin讀入一個字元,程式等待你輸入的時候你可以輸入多個字元,回車後程序繼續執行。但是getchar實際上制度如第一個字元。- 常用在exe中暫停程式。
2.2.4.fgets()函式
- char * fgets(char * str, int num, FILE * stream);
- 標頭檔案
stdio.h
- 從流stream中讀入最多num個字元到字元陣列str中,當遇到換行符的時候,或者讀到num-1個字元時候停止。自動加上
'\0'
空字元結尾
晚點補充一下輸入流的問題