#include<stdio.h> #include<string.h>
struct store { char item_number[10]; int number_in_stock; float unit_price; char name[50]; };
main() { FILE *fp; int i,num,index; char *tfile="d:\\qd\\store.txt"; char text[100]; char *token; char seps[]="\n"; struct store *p; struct store item[100]; clrscr(); if((fp=fopen(tfile,"r"))==NULL) printf("%s could not be opened!\n",tfile);
printf("item_number number_in_stock unit_price item_name\n"); for(num=0;num<33;num++) { while(!feof(fp)) { fgets(text,100,fp); token=strtok(text,seps); for(index=0;index<=3;index++) { while(token&&*token!='\x0a') { switch(index) { case 0: strcpy((item+num)->item_number,token);break; case 1: (item+num)->number_in_stock=atoi(token);break; case 2: (item+num)->unit_price=atof(token);break; case 3:strcpy((item+num)->name,token);break; } token=strtok(NULL,seps); } } } } for(p=item;p<item+33;p++) { fread(tfile,sizeof(struct store),1,fp); printf("%s %d %f %s\n",p->item_number,p->number_in_stock,p->unit_price,p->name); } fclose(fp); } 我是想把store.txt中的文件打印到屏幕上,但是总是在name那一栏的后面出现一些乱七八糟的数字,然后又把name的内容重复一遍...我实在是不知道问题究竟出在哪里...请各位大侠赐教..小妹这里谢了...
----------------解决方案--------------------------------------------------------