C 语言 fwrite 和 fread 文件读写操作示例



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



/* fread example: read a complete file 读取一个完整的文件 */
#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

    // obtain file size:  获得文件大小
    fseek(pFile , 0 , SEEK_END); // 指针移到文件末位
    lSize = ftell(pFile);  // 获得文件长度
    rewind(pFile);  // 函数rewind()把文件指针移到由stream(流)指定的开始处, 同时清除和流相关的错误和EOF标记

    // allocate memory to contain the whole file: 为整个文件分配内存缓冲区
    buffer = (char*) malloc(sizeof(char) * lSize); // 分配缓冲区,按前面的 lSize
    if (buffer == NULL) {fputs("Memory error", stderr); exit(2);}  // 内存分配错误,退出2

    // copy the file into the buffer:  该文件复制到缓冲区
    result = fread(buffer, 1, lSize, pFile); // 返回值是读取的内容数量
    if (result != lSize) {fputs("Reading error", stderr); exit(3);} // 返回值如果不和文件大小,读错误

    /* the whole file is now loaded in the memory buffer. */ //现在整个文件载入内存缓冲区

    // 读到内存,看自己怎么使用了...............
    // ...........


    // terminate // 文件终止
    fclose(pFile);
    free(buffer);
    return 0;
}


  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值