zoukankan      html  css  js  c++  java
  • fread和fwrite的使用

    fread和fwrite的使用

    fread和fwrite一般用于二进制文件的输入/输出,要不然你打开fwrite写入的文件就是乱码。

    1.fread和fwrite函数

    数据块I/O fread与fwrite
    函数原型:
    size_t fread(void *buffer, size_t size, size_t, count, FILE *pf)
    size_t fwrite(void *buffer, size_t size, size_t count, FILE *pf)
    功能:读写数据块(将内存的内容直接写入磁盘)
    返回值:成功,返回读/写的个数,出错或文件尾,返回0.
    参数含义:
    buffer 从pf中读取到buffer/将buffer中的写入到pf中去。
    size 每个要读/写的数据块的大小。
    count 要读/写的数据块的个数
    fp 要读/写的文件指针
    typedef unsigned size_t


    2. 文本与二进制文件之间的区别是 和 之间的转换。

    3.例子

    #define  _CRT_SECURE_NO_WARNINGS
    #include<stdio.h>
    #include <stdlib.h>
    
    
    void main1()
    {
        int a[100];
        printf("%p", a);
        for (int i = 0; i < 100;i++)
        {
            ;
            printf("
    %d", a[i] = i);
        }
    
        FILE *pf = fopen("C:\1.bin", "r");
    
        int num=fwrite(a, sizeof(int), 99, pf);//第一个内存首地址,第二个元素大小,第三个个数
        printf("fwrite  return =%d", num);//返回写入成功的个数.失败返回0
        fclose(pf);
    
    
        system("pause");
    
    }
    void write()
    {
        int a[100];
    
        for (int i = 0; i < 100; i++)
        {
            printf("
    %d", a[i] = i);
        }
        FILE *pf = fopen("C:\1.bin", "wb");
        int num = fwrite(a, sizeof(int), 100, pf);//第一个内存首地址,第二个元素大小,第三个个数
        printf("fwrite  return =%d", num);//返回写入成功的个数.失败返回0
        fclose(pf);
    }
    
    void read()
    {
        void *p = malloc(400);
        printf("%p
    ", p);
        FILE *pf = fopen("C:\1.bin", "rb");
        int num= fread(p, 4, 100, pf);//第一个内存首地址,第二个元素大小,第三个个数
        printf("fread  return =%d", num);//返回读取成功个数
        fclose(pf);
    }
    
    void main()
    {
        read();
       
        system("pause");
    }
  • 相关阅读:
    C语言之回调函数&模块化
    680. 验证回文字符串 Ⅱ
    C++指针数组和数组指针
    345. 反转字符串中的元音字母
    633.平方数之和
    IDM使用介绍篇
    路由器无线桥接WDS
    约数的个数
    密码翻译
    查找学生信息
  • 原文地址:https://www.cnblogs.com/sjxbg/p/5875841.html
Copyright © 2011-2022 走看看