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;
}