日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言 二进制文件读取和写入

發布時間:2025/5/22 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言 二进制文件读取和写入 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

fwrite函數

頭文件原型說明返回值
#include <stdio.h>size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);從ptr指向的數組中將最多nmemb個長度為size的元素寫入stream指向的流中。若定義了流的文件位置指示符,則以成功寫入的字符數為單位向前移動。當發生錯誤時,該流的文件位置指示符的值不可預測。返回成功寫入的元素個數。僅當發生寫入錯誤時,元素個數會少于nmemb。

fread函數

頭文件原型說明返回值
#include <stdio.h>size_t fread(const void *ptr, size_t size, size_t nmemb, FILE *stream);從stream指向的流中最多讀取nmemb個長度為size的元素到ptr指向的數組。若定義了流的文件位置指示符,則以成功讀取的字符數為單位向前移動。當發生錯誤時,該流的文件位置指示符的值不可預測。只讀取到某一元素的部分內容時,值不可預測。返回成功讀取的元素個數。當發生讀取錯誤或達到文件末尾時,元素個數會少于nmemb。若size或nmemb為0,則返回0.這時數組內容和流的狀態都不發生變化。

fwrite函數 和 fread函數
這兩個函數會接收4個參數:

  • 第一個參數:指向讀寫數據的首地址的指針。
  • 第二個參數:數據的長度
  • 第三個參數:數據的個數
  • 第四個參數:指向讀寫對象的流的指針。

PI.bin文件:

#include <stdio.h>int main(void){FILE *fp;double pi = 3.14159265358979323846;printf("從變量pi得到的圓周率為%23.21f。\n", pi);if ((fp = fopen("PI.bin", "wb")) == NULL){printf("文件打開失敗。\n"); } else {fwrite(&pi, sizeof(double), 1, fp);fclose(fp);}if ((fp = fopen("PI.bin", "rb")) == NULL){printf("文件打開失敗。\n"); } else {fread(&pi, sizeof(double), 1, fp);printf("從文件讀取的圓周率為%23.21f。\n", pi);fclose(fp); } return 0; }

運行結果:

fwrite(&pi, sizeof(double), 1, fp); fread(&pi, sizeof(double), 1, fp);

第二參數 sizeof(double) 指定了 double型的長度,第三個參數指定了要讀寫的變量個數為 1個。

總結

以上是生活随笔為你收集整理的C语言 二进制文件读取和写入的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。