读取文件时多次读取

#include <stdio.h>  

#include <stdlib.h>  

#include <windows.h> 

struct person

{

char num[3];    //编号

char name[20];   //姓名

char age[2];    //年龄

char sex[2];     //性别

char phone[12];   //电话

char adress[50];   //地址

char e_mail[20];   //电子邮件

char classify[10];  //分类名

}per[100];     //最大数为100  

int load()/*加载函数*/  

{   

FILE *fp; 

 int i;  

 if((fp=fopen("person.txt","r"))==NULL) 

 {

printf("\nCannot open file\n");   

return 0; 

 }   

for(i=0;!feof(fp);i++)  

 {

fscanf(fp,"%s%s%s%s%s%s%s%s",&per[i].num,&per[i].name,&per[i].age,&per[i].sex,&per[i].phone,&per[i].adress,&per[i].e_mail,&per[i].classify);  

 }      

fclose(fp); 

 return(i); 

}

int main()  

{   

int n,i;

   

n=load(); 

for(i=0;i<n;i++)  

{  

printf("%s  %-7s %-2s %-2s %-12s %-50s %-20s %-10s\n",per[i].num,per[i].name,per[i].age,per[i].sex,per[i].phone,per[i].adress,per[i].e_mail,per[i].classify);

}  

}  

http://img2.mukewang.com/5a47a4d50001d61805670200.jpg

goooool
浏览 953回答 1
1回答

goooool

找到原因了,错误的三个数组给的空间都太小了,没地方放/0就自动溢出寻找/0了。
打开App,查看更多内容
随时随地看视频慕课网APP