C語言從零開始(八)-標準輸入輸出

今天介紹的是最重要的一個功能。標準I/O(輸入/輸出)包含了如下一些函數:scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等。我們今天著重介紹一些常用的。

之前大家普遍反映知識點過于基礎,今天我們調整一下方法,從簡單代碼入手,幫助大家在練習中學習。

1. printf() 和 scanf()

  • printf(): 將指定的文字/字符串輸出到標準輸出設備(屏幕)。
  • scanf(): 從標準輸入設備(鍵盤)讀取數據,并將值存放在變量中。

請看如下代碼:

#include <stdio.h>

int main()
{
    int a, b, c;

    scanf("%d%d", &a, &b); // 從鍵盤輸入兩個整數
    printf("a = %d b = %d \n", a, b); // 將兩個整數輸出到屏幕

    scanf("%d", &c); 
    printf("c = %d \n", c);

    return 0;
}

運行結果如下:

一次性輸入
分兩次輸入

由上面兩幅圖可以看出,同樣的代碼,不同的輸入方式打印出的格式不同。

這兩個函數涉及的零散知識較多,只需了解,不要求死記硬背。用到的時候能夠通過查找教材或百度找到方法即可。在這里不做具體介紹,請自行學習教材。如有問題歡迎郵件探討。

2. getchar()與putchar()

  • getchar(): 將用戶輸入的字符輸出到標準輸出設備(屏幕)。按【Enter】鍵后,getchar()函數才會讀入第一個字符,并返回該字符常量。

注:由于緩沖區的讀取特性,當用戶由鍵盤鍵入字符時,計算機并不會馬上處理,而會暫存到系統的緩沖區(Buffter)內。到按【Enter】鍵后,getchar()函數才會讀入緩沖區的第一個字符。而其它字符繼續保留在緩沖區,等待下一個讀取字符/字符串的函數來讀入。

  • putchar(): 用來輸出指定的單一字符。

請看下面這段代碼:

#include <stdio.h>

int main()
{
    char c, s[20];
    printf("Enter a string: ");
    c = getchar();
    printf("Read the remaining from the buffer\n");
    scanf("%s", s);

    putchar(c);
    putchar('\n');
    printf("%s \n", s);

    return 0;
}

運行結果:

運行結果

3. getche()與getch()

  • getche(): 該函數會由鍵盤輸入一個字符,返回給調用者,并在屏幕上顯示讀入的字符。由于它并不讀取緩沖區的字符,只要用戶輸入字符,getche()函數會立刻讀取,而不需等待按【Enter】鍵。通常用于程序中只需用戶輸入一個字符,即可往下繼續執行的情形。

  • getch(): 它與getche()的區別是,getch()不需將所輸入的字符顯示到屏幕上。

請看下面代碼:

#include <stdio.h>

int main()
{
    char c1, c2;

    printf("Press any key to exit");
    c1 = getche();
    putchar('\n');

    printf("Press any key once more to exit");
    c2 = getch();
    putchar('\n');

    printf("The character getche() read: %c \n", c1);
    printf("The character getch() read: %c \n", c2);

    return 0;
}

執行結果:

執行結果

4. gets()與puts()

  • gets()

scanf輸入字符串可以配合%s格式,但缺點是當遇到字符串中有空白或tab字符時,會自動視為串輸入結束。因此不適合輸入包含空白/tab字符的字符串。這時gets()函數就可解決該問題。

gets()函數會將用戶整段字符串響應到標準輸出設備(屏幕)上,當用戶按下【Enter】鍵時,會讀取緩沖區的所有字符并存放到指定字符數組中。

比較適合應用在多字符,中文字或長字符串的讀取。

  • puts()

用來輸出字符串,輸出完成后光標自動移到下一行。當輸出數據時,會以'\0'字符作為該字符串的結束。

請看下面代碼

#include <stdio.h>

int main()
{
    char s[50];

    printf("Enter a string: ");
    gets(s);

    printf("The string you entered: ");
    puts(s);
}

運行結果:

運行結果

今天就簡單說到這里。這些函數的具體使用方法我們會在后面的實例代碼分析中講解。

我是天花板,讓我們一起在軟件開發中自我迭代。
如有任何問題,歡迎與我聯系。


上一篇:C語言從零開始(七)-其他運算符
下一篇:C語言從零開始(九)-選擇結構

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容