一个小程序中的小问题 求解
今天在书上看到一个小程序就改了改试着运行一下 可是出现一个问题,至今无解ps:我所用ubuntu的gcc编译链接的
#include <stdlib.h>
#include <stdio.h>
struct student_type //定义存储学生信息结构体变量
{
char name[10];
int num;
int age;
char sex;
}stud[10];
void main()
{
int i;
FILE *fp;
char sign;
if((fp=fopen("stud_dat","wb+"))==NULL)
{
printf("can not open file \n");
exit(0);
}
do{
printf("你希望写入第几个学生的信息:");
scanf("%d",&i);
printf("\n输入姓名:");
scanf("%s",stud[i].name);
printf("\n输入学号:");
scanf("%d",&(stud[i].num));
printf("\n输入年龄:");
scanf("%d",&(stud[i].age));
printf("\n输入性别:");
// scanf("%s",stud[i].sex);
scanf("%c",&(stud[i].sex));
printf("do you want to input other students' infomation? y/n:");
scanf("%c",&sign);
}while(sign=='y'||sign=='Y');
printf("打印第几个:");
scanf("%d",&i);
fseek(fp,i*sizeof(struct student_type),0);
fread(stud+i,sizeof(struct student_type),1,fp);
printf("%s\n%d\n%d\n%c\n",stud[i].name,stud[i].num,stud[i].age,stud[i].sex);
fclose(fp);
}
这样用gcc编译无错误 可是红色代码一行不执行 被直接跳过
如果将sex定义成数组,病把红色代码换成蓝色的那行就能执行
请知情的帮忙看看下