欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C?語言輸入輸出庫函數(shù)講解(最新推薦)

 更新時間:2025年04月07日 09:37:36   作者:要下雨了嗎  
輸入輸出函數(shù)能夠讓程序和用戶或者文件進(jìn)行交互,這篇文章主要介紹了C?語言輸入輸出庫函數(shù)講解,需要的朋友可以參考下

輸入輸出函數(shù):能夠讓程序和用戶或者文件進(jìn)行交互。        

 頭文件:#include<stdio.h> 

1. printf 函數(shù):輸出格式化信息到控制臺 ??

?? 使用格式

printf("格式字符串", 參數(shù)列表);

?? 作用

把格式化后的字符串輸出到控制臺。格式字符串里可以包含普通字符和格式說明符,格式說明符會被后面參數(shù)列表里的值替換。

?? 用法

格式說明符一般以 % 開頭,常見的有 %d(用于輸出整數(shù))、%f(用于輸出浮點(diǎn)數(shù))、%c(用于輸出字符)、%s(用于輸出字符串)等。

?? 注意事項(xiàng)

  • 格式說明符要和參數(shù)的類型相匹配。
  • 格式字符串中的普通字符會原樣輸出。

?? 適用類型

適用于各種基本數(shù)據(jù)類型以及字符串。

?? 示例

#include <stdio.h>
int main() {
    int age = 20;
    float height = 1.75;
    char grade = 'A';
    char name[] = "Alice";
    // 輸出整數(shù)
    printf("年齡是 %d 歲。\n", age); 
    // 輸出浮點(diǎn)數(shù)
    printf("身高是 %.2f 米。\n", height); 
    // 輸出字符
    printf("成績等級是 %c。\n", grade); 
    // 輸出字符串
    printf("姓名是 %s。\n", name); 
    return 0;
}

?? 解釋

在這個例子中,printf 函數(shù)依據(jù)格式說明符把變量的值輸出到控制臺。%.2f 表示輸出浮點(diǎn)數(shù)時保留兩位小數(shù)。

2. scanf 函數(shù):從控制臺讀取格式化輸入 ??

?? 使用格式

scanf("格式字符串", &變量1, &變量2, ...);

?? 作用

從控制臺讀取用戶輸入的數(shù)據(jù),并且按照格式字符串的要求把數(shù)據(jù)存儲到對應(yīng)的變量中。

?? 用法

格式說明符和 printf 函數(shù)里的類似,不過要在變量名前加上取地址符 &,以此表明是要把數(shù)據(jù)存儲到該變量的地址處。

?? 注意事項(xiàng)

  • 輸入的數(shù)據(jù)要和格式字符串匹配。
  • 輸入多個數(shù)據(jù)時,一般用空格、制表符或者換行符分隔。

?? 適用類型

適用于各種基本數(shù)據(jù)類型。

?? 示例

#include <stdio.h>
int main() {
    int num;
    float score;
    char ch;
    // 提示用戶輸入整數(shù)
    printf("請輸入一個整數(shù):"); 
    scanf("%d", &num);
    // 提示用戶輸入浮點(diǎn)數(shù)
    printf("請輸入一個浮點(diǎn)數(shù):"); 
    scanf("%f", &score);
    // 提示用戶輸入字符
    printf("請輸入一個字符:"); 
    scanf(" %c", &ch); // 注意前面的空格,用于跳過之前輸入的換行符
    // 輸出用戶輸入的內(nèi)容
    printf("你輸入的整數(shù)是 %d,浮點(diǎn)數(shù)是 %.2f,字符是 %c。\n", num, score, ch); 
    return 0;
}

?? 解釋

這個例子中,scanf 函數(shù)按照格式說明符讀取用戶輸入的數(shù)據(jù),并把它們存儲到對應(yīng)的變量中。在讀取字符前加空格是為了跳過之前輸入的換行符。

3. getchar 函數(shù):讀取單個字符 ??

?? 使用格式

int getchar(void);

?? 作用

從標(biāo)準(zhǔn)輸入(通常是鍵盤)讀取一個字符,并返回該字符的 ASCII 碼值。

?? 用法

調(diào)用 getchar 函數(shù)時,程序會暫停,等待用戶輸入一個字符,按下回車鍵后,函數(shù)會返回該字符的 ASCII 碼值。

?? 注意事項(xiàng)

  • getchar 會讀取換行符,所以在連續(xù)使用時要注意處理換行符。
  • 函數(shù)返回值是 int 類型,不是 char 類型。

?? 適用類型

適用于字符類型。

?? 示例

#include <stdio.h>
int main() {
    char ch;
    // 提示用戶輸入一個字符
    printf("請輸入一個字符:"); 
    ch = getchar();
    // 輸出用戶輸入的字符
    printf("你輸入的字符是 %c。\n", ch); 
    return 0;
}

?? 解釋

此例中,getchar 函數(shù)讀取用戶輸入的一個字符,并將其賦值給變量 ch,然后輸出該字符。

4. putchar 函數(shù):輸出單個字符 ???

?? 使用格式

int putchar(int c);

?? 作用

把一個字符輸出到標(biāo)準(zhǔn)輸出(通常是控制臺)。

?? 用法

傳入一個字符的 ASCII 碼值或者字符常量,函數(shù)會將對應(yīng)的字符輸出到控制臺。

?? 注意事項(xiàng)

  • 傳入的參數(shù)可以是字符常量,也可以是字符變量的 ASCII 碼值。
  • 函數(shù)返回值是輸出的字符的 ASCII 碼值。

?? 適用類型

適用于字符類型。

?? 示例

#include <stdio.h>
int main() {
    char ch = 'B';
    // 輸出字符
    putchar(ch); 
    putchar('\n'); // 輸出換行符
    return 0;
}

?? 解釋

在這個例子中,putchar 函數(shù)把字符 B 輸出到控制臺,然后輸出一個換行符。

5. fopen 函數(shù):打開文件 ??

?? 使用格式

FILE *fopen(const char *filename, const char *mode);

?? 作用

打開指定文件名的文件,并返回一個指向該文件的 FILE 指針。

?? 用法

filename 是要打開的文件的名稱,mode 是打開文件的模式,常見的模式有:

  • "r":以只讀模式打開文件。
  • "w":以寫入模式打開文件,如果文件不存在則創(chuàng)建,如果存在則清空內(nèi)容。
  • "a":以追加模式打開文件,如果文件不存在則創(chuàng)建。

?? 注意事項(xiàng)

  • 打開文件后,要檢查返回的指針是否為 NULL,若為 NULL 則表示打開文件失敗。
  • 操作完文件后,要使用 fclose 函數(shù)關(guān)閉文件。

?? 適用類型

適用于文件操作。

?? 示例

#include <stdio.h>
int main() {
    FILE *file;
    // 以只讀模式打開文件
    file = fopen("test.txt", "r"); 
    if (file == NULL) {
        // 輸出錯誤信息
        printf("無法打開文件!\n"); 
        return 1;
    }
    // 這里可以進(jìn)行文件讀取操作
    // 關(guān)閉文件
    fclose(file); 
    return 0;
}

?? 解釋

此例中,fopen 函數(shù)嘗試以只讀模式打開 test.txt 文件,若打開失敗則輸出錯誤信息,打開成功后可以進(jìn)行文件讀取操作,最后使用 fclose 函數(shù)關(guān)閉文件。

6. fclose 函數(shù):關(guān)閉文件 ?

?? 使用格式

int fclose(FILE *stream);

?? 作用

關(guān)閉指定的文件流,釋放相關(guān)資源。

?? 用法

傳入一個指向 FILE 類型的指針,該指針是通過 fopen 函數(shù)返回的。

?? 注意事項(xiàng)

  • 關(guān)閉文件后,就不能再對該文件進(jìn)行讀寫操作了。
  • 函數(shù)返回值為 0 表示關(guān)閉成功,非 0 表示關(guān)閉失敗。

?? 適用類型

適用于文件操作。

?? 示例

#include <stdio.h>
int main() {
    FILE *file;
    // 以寫入模式打開文件
    file = fopen("test.txt", "w"); 
    if (file == NULL) {
        // 輸出錯誤信息
        printf("無法打開文件!\n"); 
        return 1;
    }
    // 這里可以進(jìn)行文件寫入操作
    // 關(guān)閉文件
    if (fclose(file) == 0) {
        printf("文件關(guān)閉成功!\n");
    } else {
        printf("文件關(guān)閉失敗!\n");
    }
    return 0;
}

?? 解釋

這個例子中,fopen 函數(shù)以寫入模式打開 test.txt 文件,進(jìn)行文件寫入操作后,使用 fclose 函數(shù)關(guān)閉文件,并根據(jù)返回值判斷關(guān)閉是否成功。

7. fgets 函數(shù):安全讀取字符串 ??

?? 使用格式

char *fgets(char *str, int n, FILE *stream);

?? 作用

從指定的文件流中讀取一行字符串,并存儲到 str 指向的字符數(shù)組中。

?? 用法

str 是存儲讀取字符串的字符數(shù)組,n 是最多讀取的字符數(shù)(包含換行符和字符串結(jié)束符 '\0'),stream 是文件流指針,可以是 stdin(標(biāo)準(zhǔn)輸入)或者通過 fopen 打開的文件指針。

?? 注意事項(xiàng)

  • 若讀取的字符數(shù)達(dá)到 n - 1 或者遇到換行符,讀取會停止,并且會在字符串末尾添加 '\0'。
  • 若讀取成功,返回 str 指針;若遇到文件結(jié)束符或者出錯,返回 NULL

?? 適用類型

適用于字符串類型。

?? 示例

#include <stdio.h>
int main() {
    char buffer[100];
    // 從標(biāo)準(zhǔn)輸入讀取一行字符串
    printf("請輸入一行字符串:"); 
    fgets(buffer, sizeof(buffer), stdin);
    // 輸出讀取的字符串
    printf("你輸入的字符串是:%s", buffer); 
    return 0;
}

?? 解釋

在這個例子中,fgets 函數(shù)從標(biāo)準(zhǔn)輸入讀取一行字符串,最多讀取 sizeof(buffer) - 1 個字符,然后將其存儲到 buffer 數(shù)組中,并輸出該字符串。

8. fputs 函數(shù):輸出字符串到文件 ??

?? 使用格式

int fputs(const char *str, FILE *stream);

?? 作用

把字符串 str 輸出到指定的文件流中。

?? 用法

str 是要輸出的字符串,stream 是文件流指針,可以是 stdout(標(biāo)準(zhǔn)輸出)或者通過 fopen 打開的文件指針。

?? 注意事項(xiàng)

  • 函數(shù)不會自動添加換行符,若需要換行,要在字符串中手動添加 '\n'。
  • 若輸出成功,返回非負(fù)值;若出錯,返回 EOF。

?? 適用類型

適用于字符串類型。

?? 示例

#include <stdio.h>
int main() {
    FILE *file;
    // 以寫入模式打開文件
    file = fopen("test.txt", "w"); 
    if (file == NULL) {
        // 輸出錯誤信息
        printf("無法打開文件!\n"); 
        return 1;
    }
    // 向文件中寫入字符串
    fputs("Hello, World!\n", file); 
    // 關(guān)閉文件
    fclose(file); 
    return 0;
}

?? 解釋

此例中,fopen 函數(shù)以寫入模式打開 test.txt 文件,fputs 函數(shù)把字符串 "Hello, World!\n" 寫入文件,最后使用 fclose 函數(shù)關(guān)閉文件。

 緩沖區(qū)管理技巧

通用清空方案

void clear_buffer() {
    int c;
    while ((c = getchar()) != '\n' && c != EOF);
}

使用場景

scanf()后立即調(diào)用

處理異常輸入時     

?? 黃金法則

  • 所有輸入函數(shù)都要考慮緩沖區(qū)溢出風(fēng)險(xiǎn)
  • 文件操作后必須檢查返回值并關(guān)閉文件
  • 格式化IO要嚴(yán)格匹配類型

掌握這些核心函數(shù),你的C語言IO操作將游刃有余! ??

到此這篇關(guān)于C 語言輸入輸出庫函數(shù)講解的文章就介紹到這了,更多相關(guān)C 語言輸入輸出庫函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C數(shù)據(jù)結(jié)構(gòu)中串簡單實(shí)例

    C數(shù)據(jù)結(jié)構(gòu)中串簡單實(shí)例

    這篇文章主要介紹了C數(shù)據(jù)結(jié)構(gòu)中串簡單實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • C++ DFS算法實(shí)現(xiàn)走迷宮自動尋路

    C++ DFS算法實(shí)現(xiàn)走迷宮自動尋路

    這篇文章主要為大家詳細(xì)介紹了C++ DFS算法實(shí)現(xiàn)走迷宮自動尋路,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • 詳解C語言結(jié)構(gòu)體中的函數(shù)指針

    詳解C語言結(jié)構(gòu)體中的函數(shù)指針

    這篇文章主要介紹了詳解C語言結(jié)構(gòu)體中的函數(shù)指針,文中對函數(shù)指針的基本概念也有講解,需要的朋友可以參考下
    2016-04-04
  • C++ 中malloc()和free()函數(shù)的理解

    C++ 中malloc()和free()函數(shù)的理解

    這篇文章主要介紹了C++ 中malloc()和free()函數(shù)的理解的相關(guān)資料,這里提供用法示例幫助大家理解這部分知識,需要的朋友可以參考下
    2017-08-08
  • 使用OpenCV檢測圖像中的矩形

    使用OpenCV檢測圖像中的矩形

    這篇文章主要為大家詳細(xì)介紹了使用OpenCV檢測圖像中的矩形,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • C語言文件操作大全

    C語言文件操作大全

    這篇文章主要介紹了C語言文件操作大全的相關(guān)資料,需要的朋友可以參考下
    2018-03-03
  • kernel劫持modprobe?path內(nèi)容詳解

    kernel劫持modprobe?path內(nèi)容詳解

    這篇文章主要為大家介紹了kernel劫持modprobe?path的內(nèi)容詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • c++中臨時變量不能作為非const的引用參數(shù)的方法

    c++中臨時變量不能作為非const的引用參數(shù)的方法

    下面小編就為大家?guī)硪黄猚++中臨時變量不能作為非const的引用參數(shù)的方法。小編覺得挺不錯的現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • 基于OpenCV實(shí)現(xiàn)車道線檢測(自動駕駛 機(jī)器視覺)

    基于OpenCV實(shí)現(xiàn)車道線檢測(自動駕駛 機(jī)器視覺)

    無人駕駛技術(shù)是機(jī)器學(xué)習(xí)為主的一門前沿領(lǐng)域,在無人駕駛領(lǐng)域中機(jī)器學(xué)習(xí)的各種算法隨處可見,本文將為大家介紹無人駕駛技術(shù)中的車道線檢測,感興趣的小伙伴可以了解一下
    2021-11-11
  • C語言自定義軍旗游戲源碼

    C語言自定義軍旗游戲源碼

    這篇文章主要為大家詳細(xì)介紹了C語言自定義軍旗游戲源碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02

最新評論