首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

这是咋回事?输入4行数据,为什么只显示一行

2012-08-16 
这是怎么回事?输入4行数据,为什么只显示一行?第一个程序:C/C++ code#include stdio.h#define SIZE 4stru

这是怎么回事?输入4行数据,为什么只显示一行?
第一个程序:

C/C++ code
#include <stdio.h>#define SIZE 4struct student_type{    char name[10];    int num;    int age;    char addr[15];}stud[SIZE];void save(){    FILE * fp;    int i;    if((fp = fopen("stu_list","wb")) == NULL)    {        printf("cannot open file\n");        return;    }    for(i=0;i<SIZE;i++)        if(fwrite(&stud[i],sizeof(struct student_type),1,fp)!=1)            printf("file write error\n");        fclose(fp);}int main(void){    int i;    for(i=0;i<SIZE;i++)        scanf("%s%d%d%s",stud[i].name,&stud[i].num,&stud[i].age,stud[i].addr);    save();    return 0;}

第二个程序:
C/C++ code
#include <stdio.h>#define SIZE 4struct student_type{    char name[10];    int num;    int age;    char addr[15];}stud[SIZE];int main(void){    int i;    FILE*fp;    fp=fopen("stu_list","rb");    for(i=0;i<SIZE;i++)    {        fread(&stud[i],sizeof(struct student_type),1,fp);        printf("%-10s%4d%4d%-16s\n",stud[i].name,stud[i].num,stud[i].age,stud[i].addr);        fclose(fp);    }    return 0;}

第一个程序运行时,输入的数据是:
zhang 1001 19 room_101
fun 1002 20 room_102
tan 1003 21 room_103
ling 1004 21 room_104
第二个程序的运行结果显示:
zhang 1001 19room_101
0 0
0 0
0 0
怎么回事呢?

[解决办法]
C/C++ code
for(i=0;i<SIZE;i++)    {        fread(&stud[i],sizeof(struct student_type),1,fp);        printf("%-10s%4d%4d%-16s\n",stud[i].name,stud[i].num,stud[i].age,stud[i].addr);            }fclose(fp);
[解决办法]
虽然我不会,但是回答的都太笼统,似是而非的,哎~

热点排行