你这个的问题在于,gets()以回车做为分隔符,当你输入日时你会打一个回车,系统就将这个回给了gets()但是gets()又以回车做为分隔符,所以这个回车并没有读入进gets()中,所以最终会直接输出。
改正的程序如下:如果不明白为什么,可以记住,这种东西没有什么好说的。
#include <stdio.h>
#include <string.h>
struct kind
{
int year;
int month;
int day;
char menber[20];
} all;
void main()
{
printf("请输入年分\n");
scanf("%d",&all.year );
printf("请输入月份\n");
scanf("%d",&all.month);
printf("请输入日\n");
scanf("%d",&all.day);
getchar();
printf("请输入成员\n");
gets(all.menber);
printf("%d年%d月%d日 成员%s\n",all.year ,all.month ,all.day ,all.menber );
}
printf("请输入成员\n");
fflush(stdin); //清洗输入流,OK
gets(all.menber);
改正的程序如下:如果不明白为什么,可以记住,这种东西没有什么好说的。
#include <stdio.h>
#include <string.h>
int year;
int month;
int day;
char menber[20];
void main()
{
printf("请输入年分\n");
scanf("%d",&all.year );
printf("请输入月份\n");
scanf("%d",&all.month);
printf("请输入日\n");
scanf("%d",&all.day);
getchar();
printf("请输入成员\n");
gets(all.menber);
printf("%d年%d月%d日 成员%s\n",all.year ,all.month ,all.day ,all.menber );
}
printf("请输入成员\n");
fflush(stdin); //清洗输入流,OK
gets(all.menber);