1. 程式人生 > >C語言中的輸入輸出函式(學習筆記)

C語言中的輸入輸出函式(學習筆記)

文章目錄

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'空字元結尾

晚點補充一下輸入流的問題