#include <stdio.h>#include <stdlib.h>#include <string.h>
typedef struct event{ int p; int d; char name[20];}event;int main(){ int i=0; event eve[4]; FILE *fp; fp=fopen("D:\\test4.txt","r"); if (fp ==0) { printf("file erro!\n"); exit(1); } fscanf(fp,"%d%d%s",&eve[i].p,&eve[i].d,&eve[i].name); while(fgetc(fp)!=EOF) { printf("%d %d %s\n",eve[i].p,eve[i].d,eve[i].name); i++; fscanf(fp,"%d%d%s",&eve[i].p,&eve[i].d,&eve[i].name); } fclose(fp); return 0;
}
不是读不到,而是读完最后一行后,即跳出了循环,没有打印,所以,只需要在while(){}后面添加一行,如:
.....就可以打印出来了。
把代码改成如下:
.....应该也行