在C语言中,怎么建立二进制文件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在C语言中,怎么建立二进制文件?相关的知识,希望对你有一定的参考价值。

在学生文件stu_list中读出第二个学生的数据。
#include<stdio.h>
struct stu

char name[10];
int num;
int age;
char addr[15];
boy,*qq;
main()

FILE *fp;
char ch;
int i=1;
qq=&boy;
if((fp=fopen("二进制文件","rb"))==NULL)

printf("Cannot open file strike any key exit!");
getch();
exit(1);

rewind(fp);
fseek(fp,i*sizeof(struct stu),0);
fread(qq,sizeof(struct stu),1,fp);
printf("\n\nname\tnumber age addr\n");
printf("%s\t%5d %7d %s\n",qq->name,qq->num,qq->age,
qq->addr);


要是个C,或者文本文件的话,结果差了好多,就是因为不能建立二进制文件,所以结果就是不对
在C语言中,怎么建立二进制文件?

参考技术A #include <stdio.h>

struct stu

char name[10];
int num;
int age;
char addr[15];
boy,*qq;

void main()

FILE *fp;
char ch;
int i=1;
qq=&boy;

stu SStu;

strcpy(SStu.addr, ("Beijing\0"));
SStu.age = 20;
strcpy(SStu.name, "Wang Wu\0");
SStu.num = 9;


if((fp=fopen("二进制文件","w"))==NULL)

printf("Cannot open file strike any key exit!");
getch();
return;


// rewind(fp);
// fseek(fp,i*sizeof(struct stu),0);

i=fwrite(&SStu, sizeof(stu), 1, fp);
fclose(fp);

if((fp=fopen("二进制文件","r"))==NULL)return;
fread(qq,sizeof(stu),1,fp);
printf("\n\nname\tnumber age addr\n");
printf("%s\t%3d %6d %s\n",qq->name, qq->num,qq->age, qq->addr);
fclose(fp);


运行成功,看看改动有多少。本回答被提问者采纳
参考技术B 你的文件名似乎忘了写后缀,而且写入二进制流的参数不是rb 是wb

以上是关于在C语言中,怎么建立二进制文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何创建一个二进制文件?用C语言调用.

c语言如何读写二进制

C语言怎么读取二进制文件中的数据放到一个300×300的二维数组里面

c语言怎么二进制文件操作?

C 语言向文件写入二进制信息

c语言二进制文件操作