fread正在读取文件中的所有数据,但不将其保存在结构的定义中

时间:2015-02-04 19:48:18

标签: c structure fread

#include<stdio.h>
#include<conio.h>
typedef struct cr{
char name[20];
int credit;
}cr;



void main(){

 int i ;
 FILE *fp;
 cr *ptr;
 cr data[20];
 clrscr();

 ptr=data;


 fp=fopen("c:\\new\\damn.txt","rb");
 fread(ptr,sizeof(cr),1,fp);
 printf("%s\n",ptr->name);






 getch();
 }

文件damn.txt有一个字符串和一个int,它们之间有空格 内容:&#34; prateek 20&#34;

但是当我用fread读取此文件然后当我使用%s和%d打印结构的内容时,我发现所有内容仅存储在结构中的名称数组中,并且没有任何内容存储在信用卡中?发生了什么?我怎么能以结构的形式阅读结构?并将它分别保存在变量中?为什么20不存储在信用中?

1 个答案:

答案 0 :(得分:0)

我总是这样做

memset(cr, 0, 20);
fread(pt,19,1,fp);

所以你总是在结尾处有一个终止空值