C零基礎視頻-48-文件的寫入與讀取

文章目錄


視頻地址:https://www.bilibili.com/video/av73896847

fread與fwrite

從信息的轉換角度看,文件的讀取與寫入,其實就是信息在文件介質(磁盤)與內存之間進行轉換。
文件讀取(fread),就是將磁盤中的文件內容,讀取進內存中;而文件寫入(fwrite),就是將內存中的內容,寫入到磁盤中。
那麼他們就會面臨幾個關鍵問題:

  • 數據在磁盤哪裏?
  • 數據在內存哪裏?
  • 有多少數據?

瞭解以上信息後,就不難理解fread與fwrite的函數原型:

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

對於fwrite,它的四個參數:

  • stream:指向FILE結構體,告之是要寫入到磁盤中的哪個文件
  • buffer:指向內存中某個位置,告之是把內存中哪個位置的內容寫入文件
  • size和count參數:它們的乘積表示一共要寫入多少字節的內容
#include <stdio.h>

int main(int argc, char* argv[])
{
    FILE* pFile = fopen("mytest.txt", "w");
    int nValueAry[3] = { 0x11111111, 0x22222222, 0x33333333 };
    fwrite(nValueAry, sizeof(int), 3, pFile);
    fclose(pFile);
    return 0;
}

fread與fwrite類似:

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

對於fread,它的四個參數:

  • stream:指向FILE結構體,告之是讀取磁盤中的哪個文件的內容
  • buffer:指向內存中某個位置,告之讀取到內存中哪個位置
  • size和count參數:它們的乘積表示一共要讀取多少字節的內容
#include <stdio.h>

int main(int argc, char* argv[])
{
    FILE* pFile = fopen("mytest.txt", "r");
    int nValueAry[3] = { 0, 0, 0 };
    fread(nValueAry, sizeof(int), 3, pFile);
    fclose(pFile);
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章