久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術(shù)干貨  > c++fopen的使用詳解

c++fopen的使用詳解

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-11-22 18:39:11 1700649551

一、打開文件


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

c++fopen是標準C庫中的文件操作函數(shù),用于打開文件并返回指向該文件的FILE指針,使用該函數(shù)前需要包含頭文件#include 。它接收兩個參數(shù):

文件名:要打開的文件名,可以是絕對路徑或相對路徑。 模式:打開文件的模式,其中mode為下列模式之一:
模式 描述
"r" 以只讀方式打開文件。該文件必須存在
"w" 以只寫方式打開文件。如果文件不存在,則創(chuàng)建一個新文件;如果文件存在,則清空該文件
"a" 以追加方式打開文件。如果文件不存在,則創(chuàng)建一個新文件;如果文件存在,則在文件末尾寫入
"r+" 以讀寫方式打開文件。該文件必須存在
"w+" 以讀寫方式打開文件。如果文件不存在,則創(chuàng)建一個新文件;如果文件存在,則清空該文件
"a+" 以讀寫方式打開文件。如果文件不存在,則創(chuàng)建一個新文件;如果文件存在,則在文件末尾寫入

打開文件失敗時,該函數(shù)將返回空指針NULL。

二、讀寫文件

c++fopen函數(shù)成功打開文件后,我們就可以對文件進行讀寫操作了。

1. 寫入數(shù)據(jù)


    size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream);

fwrite函數(shù)用于向打開的文件中寫入數(shù)據(jù),它的參數(shù)解釋如下:

ptr:要寫入的數(shù)據(jù)的地址。 size:要寫入的每個數(shù)據(jù)項的大?。▎挝皇亲止?jié))。 count:要寫入的數(shù)據(jù)項的個數(shù)。 stream:指向FILE對象的指針。

函數(shù)的返回值為實際寫入到文件中的數(shù)據(jù)項的個數(shù)。如果沒有成功寫入任何項,則函數(shù)將返回0。

2. 讀取數(shù)據(jù)


    size_t fread(void *ptr, size_t size, size_t count, FILE *stream);

fread函數(shù)用于從打開的文件中讀取數(shù)據(jù),它的參數(shù)解釋如下:

ptr:被讀取數(shù)據(jù)的存儲地址。 size:每個數(shù)據(jù)項的大?。▎挝粸樽止?jié))。 count:要讀取的數(shù)據(jù)項數(shù)。 stream:指向FILE對象的指針。

函數(shù)的返回值為確切讀取到的數(shù)據(jù)項數(shù)。如果讀取失敗,例如讀到文件末尾或者發(fā)生了錯誤,函數(shù)將返回小于count的值。

三、關(guān)閉文件


    int fclose(FILE *stream);

使用c++fopen函數(shù)成功打開文件之后,應(yīng)該盡快關(guān)閉該文件,避免該文件繼續(xù)被占用。

fclose函數(shù)被用來關(guān)閉指定的數(shù)據(jù)流,并釋放與該流相關(guān)的所有資源。如果調(diào)用成功,則返回值為0;如果失敗,則返回EOF。

四、代碼示例


#include 

int main()
{
    FILE *fp = fopen("example.txt", "w");
    if(fp == NULL)
    {
        printf("Failed to open file.\n");
        return 1;
    }
    fprintf(fp, "Hello, World!\n");
    fclose(fp);

    char buffer[100];
    fp = fopen("example.txt", "r");
    if(fp == NULL)
    {
        printf("Failed to open file.\n");
        return 1;
    }
    fread(buffer, sizeof(buffer), 1, fp);
    printf("%s", buffer);
    fclose(fp);

    return 0;
}

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學 138****2860 剛剛成功領(lǐng)取
王同學 131****2015 剛剛成功領(lǐng)取
張同學 133****4652 剛剛成功領(lǐng)取
李同學 135****8607 剛剛成功領(lǐng)取
楊同學 132****5667 剛剛成功領(lǐng)取
岳同學 134****6652 剛剛成功領(lǐng)取
梁同學 157****2950 剛剛成功領(lǐng)取
劉同學 189****1015 剛剛成功領(lǐng)取
張同學 155****4678 剛剛成功領(lǐng)取
鄒同學 139****2907 剛剛成功領(lǐng)取
董同學 138****2867 剛剛成功領(lǐng)取
周同學 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT