當前位置:編程學習大全網 - 腳本源碼 - c語言文件操作fwrite和fread

c語言文件操作fwrite和fread

fread是C語言標準為中的壹個函數。它從壹個文件流中讀數據,最多讀取count個元素,每個元素size字節,如果調用成功返回實際讀取到的元素個數,如果不成功或讀到文件末尾返回 0。

fwrite是C語言標準庫中的壹個函數,指向文件寫入壹個數據塊。示例如下:

//讀取壹個完整的文件

#include?<stdio.h>

#include?<stdlib.h>

int?main()

{

FILE*?pFile;//文件指針

long?lSize;//?用於文件長度

char*?buffer;?//?文件緩沖區指針

size_t?result;?//?返回值是讀取的內容數量

pFile?=?fopen("myfile.bin"?,?"rb");

if?(pFile?==?NULL)?{fputs("File?error",?stderr);?exit(1);}//?如果文件錯誤,退出1

//?獲得文件大小

fseek(pFile?,?0?,?SEEK_END);?//?指針移到文件末位

lSize?=?ftell(pFile);?//?獲得文件長度

rewind(pFile);?//?函數rewind()把文件指針移到由stream(流)指定的開始處,?同時清除和流相關的錯誤和EOF標記

//?為整個文件分配內存緩沖區

buffer?=?(char*)?malloc(sizeof(char)?*?lSize);?//?分配緩沖區,按前面的?lSize

if?(buffer?==?NULL)?{fputs("Memory?error",?stderr);?exit(2);}?//?內存分配錯誤,退出2

//?該文件復制到緩沖區

result?=?fread(buffer,?1,?lSize,?pFile);?//?返回值是讀取的內容數量

if?(result?!=?lSize)?{fputs("Reading?error",?stderr);?exit(3);}?//?返回值如果不和文件大小,讀錯誤

//?terminate?//?文件終止

fclose(pFile);

free(buffer);

return?0;

}

綜合使用的例子。

#include?<stdio.h>

int?main()

{

FILE*?pFile;

float?buffer[]?=?{?2.0?,?3.0?,?8.0?};

pFile?=?fopen("myfile.bin"?,?"wb");?//?打開文件寫操作

fwrite(buffer?,?1?,?sizeof(buffer)?,?pFile);?//?把浮點數組寫到文件?myfile.bin

fclose(pFile);?//?關閉文件

float?read[3];

pFile?=?fopen("myfile.bin"?,?"rb");?//?重新打開文件讀操作

fread(read?,?1?,?sizeof(read)?,?pFile);?//?從文件中讀數據

printf("%f\t%f\t%f\n",?read[0],?read[1],?read[2]);

fclose(pFile);?//?關閉文件

return?0;

}

  • 上一篇:918事變是在幾幾幾幾年
  • 下一篇:為什麽教會在星期日而不是星期六祟拜?
  • copyright 2024編程學習大全網