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");
    }
  • 相关阅读:
    java两个栈实现一个队列&&两个队列实现一个栈
    Java HashSet和ArrayList的查找Contains()时间复杂度
    Java KMP算法代码
    利用集合求取字符串里每个字符的个数
    快速失败and安全失败
    Java 巴什博弈(取石子报数问题)
    [知识点][施工中] 1.1 部分IDE介绍
    [知识点] 4.4 动态规划进阶模型——树形/DAG/数位DP
    [知识点] 4.3 动态规划基础模型——区间DP/LIS/LCS
    [课堂小笔记] 数字电子技术
  • 原文地址:https://www.cnblogs.com/sjxbg/p/5875841.html
Copyright © 2011-2022 走看看