fread正在读取文件中的所有数据,但没有将其保存为结构的定义 #包括 #包括 类型定义结构cr{ 字符名[20]; 国际信贷; }铬; void main(){ int i; 文件*fp; cr*ptr; cr数据[20]; clrsc(); ptr=数据; fp=fopen(“c:\\new\\damn.txt”、“rb”); fread(ptr,sizeof(cr),1,fp); printf(“%s\n”,ptr->name); getch(); }
文件damn.txt有一个字符串和一个int,它们之间有空格 内容:“prateek 20” 但当我用fread读取此文件,然后使用%s和%d打印结构的内容时,我发现所有内容都存储在结构中,仅存储在名称数组中,而没有任何内容存储在credit中?发生了什么?我怎样才能以结构的形式阅读结构?并分别保存在变量中?为什么20不存储在信用卡中?我总是这样做fread正在读取文件中的所有数据,但没有将其保存为结构的定义 #包括 #包括 类型定义结构cr{ 字符名[20]; 国际信贷; }铬; void main(){ int i; 文件*fp; cr*ptr; cr数据[20]; clrsc(); ptr=数据; fp=fopen(“c:\\new\\damn.txt”、“rb”); fread(ptr,sizeof(cr),1,fp); printf(“%s\n”,ptr->name); getch(); },c,structure,fread,C,Structure,Fread,文件damn.txt有一个字符串和一个int,它们之间有空格 内容:“prateek 20” 但当我用fread读取此文件,然后使用%s和%d打印结构的内容时,我发现所有内容都存储在结构中,仅存储在名称数组中,而没有任何内容存储在credit中?发生了什么?我怎样才能以结构的形式阅读结构?并分别保存在变量中?为什么20不存储在信用卡中?我总是这样做 #include<stdio.h> #include<conio.h> typedef struct cr{ char na
#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();
}
因此,在结尾总是有一个终止null,因为fread
(a)不会神奇地将终止字符串归零,(b)不会神奇地将ASCII(或任何其他编码)转换为整数。噢和(c)它也不会截断空间上的域。您可能需要查看fscanf
。
memset(cr, 0, 20);
fread(pt,19,1,fp);