程序程序程序
#include <stdio.h>
#define N 5
#define MAXLEN 10
struct student
{
char num[MAXLEN],age[MAXLEN],weight[MAXLEN],name[MAXLEN],sex[MAXLEN];
};
int main()
{
struct student stu[N];
int i;
int j;
char juge='y';
for(i=0; i<N &&( juge=='y' ||juge=='Y');i++)
{
printf("Please input No. %d's information:\n",i+1);
printf("stuNo:");
scanf("%9s%*s",stu[i].num);//此处定义了输入的最大宽度为9,超过9后的全部删除
printf("name:");
scanf("%9s%*s",stu[i].name);
printf("sex:");
scanf("%9s%*s",stu[i].sex);
printf("age:");
scanf("%9s%*s",stu[i].age);
printf("weight:");
scanf("%9s%*s",stu[i].weight);
printf("\n");
fflush(stdin);
printf("Do you want to input another one(y/n)?");
scanf("%c",&juge);
};
printf("No. Name sex age weight\n");
for(j=0;j<i;j++)
{
printf("%5s%9s%9s%9s%9s\n",stu[j].num,stu[j].name,stu[j].sex,stu[j].age,stu[j].weight);
}
}
如果不加上"%9s%*s"这句的话。输入超过10位的就会出错。但是这样改了之后运行程序。输入超过10位的会顺利运行下去,并把多余的删除掉。但如果输入未到定义的宽度,无论怎么样按回车都不继续行进下一条语句,这要怎么处理啊?