【C 語言】文件操作 ( 按照內(nèi)存塊的方式讀寫文件 | fread 函數(shù) | fwrite 函數(shù) )

      網(wǎng)友投稿 1119 2025-04-02

      文章目錄

      一、fwrite 函數(shù)

      二、fread 函數(shù)

      三、按照內(nèi)存塊的方式寫文件

      四、按照內(nèi)存塊的方式讀文件

      一、fwrite 函數(shù)

      fwrite 函數(shù) : 將 const void *ptr 指針指向的 內(nèi)存數(shù)據(jù) , 拷貝 size_t size 乘以 size_t nmemb 字節(jié)的數(shù)據(jù)到 FILE *stream 指針指向的文件中 ;

      #include size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)

      1

      2

      二、fread 函數(shù)

      fread 函數(shù) : 從 FILE *restrict stream 指向的文件中 , 讀取 size_t size 乘以 size_t count 字節(jié)的數(shù)據(jù)到 void *restrict buffer 緩沖區(qū)中 , 返回成功讀取的 size_t count 數(shù) , 注意 不是 字節(jié)數(shù) , 是 字 節(jié) 數(shù) s i z e \cfrac{字節(jié)數(shù)}{size} size字節(jié)數(shù) 的值 ;

      #include size_t fread( void *restrict buffer, size_t size, size_t count, FILE *restrict stream );

      1

      2

      三、按照內(nèi)存塊的方式寫文件

      代碼示例 :

      // 文件指針 FILE *fp = NULL; // 文件路徑 char *filename = "D:/File/file.txt"; // 數(shù)組 Student students[3] = {0}; // 循環(huán)控制變量 int i = 0; // 初始化結(jié)構(gòu)體數(shù)組數(shù)據(jù) for(i = 0; i < 3; i++) { sprintf(students[i].name, "Tom %d", i + 1); students[i].age = 18 + i; } // 以 讀寫 方式打開 文本文件 // 文件如果不存在 , 則創(chuàng)建文件 fp = fopen(filename, "wb"); // 向文件中寫出結(jié)構(gòu)體數(shù)組數(shù)據(jù) fwrite(students, sizeof(Student), 3, fp); // 關(guān)閉文件 fclose(fp); // 如果沒有關(guān)閉文件 , 則需要等待文件執(zhí)行完畢后 , 才能將內(nèi)存緩存寫出磁盤文件中 // 命令行不要退出 system("pause"); return 0;

      1

      2

      3

      4

      5

      6

      7

      【C 語言】文件操作 ( 按照內(nèi)存塊的方式讀寫文件 | fread 函數(shù) | fwrite 函數(shù) )

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      執(zhí)行結(jié)果 : 每個(gè)結(jié)構(gòu)體 24 24 24 字節(jié) , 寫出了 3 3 3 個(gè)結(jié)構(gòu)體 , 最終文件大小 72 72 72 字節(jié) ;

      數(shù)據(jù)內(nèi)容 :

      二進(jìn)制查看 :

      四、按照內(nèi)存塊的方式讀文件

      代碼示例 :

      #include #include #include // 該結(jié)構(gòu)體每個(gè) 24 字節(jié) typedef struct Student { char name[20]; int age ; }Student; /** * @brief 主函數(shù)入口 * @return */ int main(int argc, char* argv[], char**env) { // 文件指針 FILE *fp = NULL; // 文件路徑 char *filename = "D:/File/file.txt"; // 數(shù)組 Student students[3]; // 循環(huán)控制變量 int i = 0; // 以 讀寫 方式打開 文本文件 // 文件如果不存在 , 則創(chuàng)建文件 fp = fopen(filename, "r+b"); // 向文件中寫出結(jié)構(gòu)體數(shù)組數(shù)據(jù) fread(students, sizeof(Student), 3, fp); // 打印結(jié)構(gòu)體數(shù)組數(shù)據(jù) for(i = 0; i < 3; i++) { //fread(&students[i], sizeof(Student), 1, fp); printf("%d . name = %s , age = %d\n", i, students[i].name, students[i].age); } // 關(guān)閉文件 fclose(fp); // 如果沒有關(guān)閉文件 , 則需要等待文件執(zhí)行完畢后 , 才能將內(nèi)存緩存寫出磁盤文件中 // 命令行不要退出 system("pause"); return 0; }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      37

      38

      39

      40

      41

      42

      43

      44

      45

      46

      47

      48

      49

      50

      51

      52

      執(zhí)行結(jié)果 :

      C 語言 數(shù)據(jù)結(jié)構(gòu)

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:WPS文本中快速輸入商標(biāo)符號(hào)的幾種方法
      下一篇:Kubernetes手記(1)- Kubernetes概述
      相關(guān)文章
      亚洲成在人天堂在线| 亚洲午夜国产精品无码老牛影视| 亚洲开心婷婷中文字幕| gogo全球高清大胆亚洲| 亚洲av无码专区亚洲av不卡| 国产亚洲福利在线视频| 国产亚洲福利在线视频| 亚洲一区二区三区丝袜| 亚洲人av高清无码| 亚洲精品动漫免费二区| 青青青亚洲精品国产| 在线精品自拍亚洲第一区| 国产亚洲美女精品久久| 亚洲成a人在线看天堂无码| 亚洲国产成人久久综合区| 亚洲精品国产精品乱码不卞 | 国产亚洲福利精品一区二区| 国产亚洲精品第一综合| 亚洲国产精品尤物YW在线观看 | 亚洲AV无码乱码在线观看性色扶 | 色噜噜综合亚洲av中文无码| 亚洲网站在线播放| 亚洲一区免费在线观看| 亚洲va在线va天堂成人| 亚洲精品无码mⅴ在线观看| 亚洲av无码兔费综合| 亚洲成AⅤ人影院在线观看| ZZIJZZIJ亚洲日本少妇JIZJIZ| 亚洲日韩精品无码一区二区三区| 亚洲国产另类久久久精品| 亚洲精品自产拍在线观看动漫| 亚洲综合免费视频| 亚洲综合精品成人| 国产精品成人亚洲| 亚洲深深色噜噜狠狠爱网站| 亚洲视频在线一区| 亚洲香蕉在线观看| 激情无码亚洲一区二区三区| 亚洲一区二区视频在线观看| 国产亚洲一区二区在线观看| 337p日本欧洲亚洲大胆艺术|