How to use fread and fwrite functions to read and write Binary files?

痴心易碎 提交于 2019-12-03 01:55:51

Open the file with mode w+ (reading and writing). The following code works:

#include<stdio.h>
int main()
{
    FILE *fp = NULL;

    short x[10] = {1,2,3,4,5,6,5000,6,-10,11};
    short result[10];
    int i;

    fp=fopen("temp.bin", "w+");

    if(fp != NULL)
    {
        fwrite(x, sizeof(short), 10 /*20/2*/, fp);
        rewind(fp);
        fread(result, sizeof(short), 10 /*20/2*/, fp);
    }
    else
        return 1;

    printf("Result\n");
    for (i = 0; i < 10; i++)
        printf("%d = %d\n", i, (int)result[i]);

    fclose(fp);
    return 0;
}

With output:

Result
0 = 1
1 = 2
2 = 3
3 = 4
4 = 5
5 = 6
6 = 5000
7 = 6
8 = -10
9 = 11

When you opened the file, you forgot to allow for reading:

fp=fopen("c:\\temp.bin", "wb");

Should be:

fp=fopen("c:\\temp.bin", "w+b");
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!