gpt4 book ai didi

c - 用C语言读写二进制文件

转载 作者:行者123 更新时间:2023-11-30 19:43:01 30 4
gpt4 key购买 nike

首先,我在这里读到:

  1. reading-binary-files-in-c
  2. binary-file-reading-writing-in-c

我正在尝试用 C 读取二进制文件。并编写了以下代码:

struct emp
{
char name[20];
char surname[20];
char no[20];
char aldigiDersKodu[20];
};
struct emp e;
***
***
***
FILE *fp;
fp = fopen("student.bin","rb+");
if(fp == NULL)
{
fp = fopen("student.bin","wb+");
if(fp == NULL)
{
printf("File is not opening.");
exit(1);
}
}
***
***
***
fseek(fp, 0, SEEK_END);

another = 'y';
while(another == 'y')
{
printf("\nOgrencinin Adi: ");
scanf("%s",e.name);
printf("\nOgrencinin Soyadi: ");
scanf("%s", &e.surname);
printf("\nOgrencinin Numarasi: ");
scanf("%s", &e.no);

fwrite(&e, sizeof(struct emp), 1, fp);

printf("\nYeni Ogrenci Ekle(y/n)\n");
fflush(stdin);
another = getche();
}
***
***
***

我正在向学生添加类(class)名称和类(class)代码(例如:数学、M1)。(相同方法)

读取二进制文件代码:

scanf("%s", no);
rewind(fp);
while(fread(no, sizeof(struct emp), 1, fp) == 1)
{
printf("\n%s %s %s %s", &e.name, &e.surname, e.no, &e.aldigiDersKodu);
}

当我读取二进制文件时,我在控制台中看起来像这样:

enter image description here

我的 bin 文件如下所示:

Aytunc øA'v:A'vXÿæ´Yalcinkaya °@ Àþ( 1,Aytunc,Yalcinkaya,M 'vÍE'v°@ ”ÿ( @ Osman øA'v:A'vXÿæ´Villi kaya °@ Àþ( 2 ( Ìÿ( r'vô@_Ùþÿÿÿ:A'vÍE'v°@ ”ÿ( @

但我想在控制台屏幕中查看此输出:

1 Aytunc Yalcinkaya M

最佳答案

首先,当您保存结构文件时,您可以/必须读取结构。

while(fread(&e, sizeof(struct emp), 1, fp) == 1)

其次,您必须将指针传递给 %s 格式,然后

printf("\n%s %s %s %s", e.name, e.surname, e.no, e.aldigiDersKodu);

或者至少

printf("\n%s %s %s %s", &e.name[0], &e.surname[0], &e.no[0], &e.aldigiDersKodu[0]);

关于c - 用C语言读写二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30212889/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com