我是个菜鸟,这两天写程序呢,这个是我几天在宿舍写的一个程序,就是在输入时的一个问题在输入函数的运行会跳过性别的输入二直接到下一次输入,每次输入都是这样跳过性别的输入,而我在循环里面每个printf后面加上getchar();语句之后结果就好了;好像听老师说过这是用getchar();来吃掉回车什么之类的。但是具体是怎么回事,是什么原因导致这样的我还是没弄懂。希望各位前辈高人们能指点我的迷津。谢谢了!
#include <stdio.h>
#define N 3
typedef struct
{
char Name[15];
int age;
char sex;
} P_message;
void Input(P_message pe[],int n);
void Output(P_message pe[],int n);
main()
{
P_message people[N];
Input(people,N);
Output(people,N);
}
void Input(P_message pe[],int n)
{
int i;
printf("input message of people/n");
for(i=0;i<n;i++)
{
printf("Name is:");
gets(pe[i].Name);
printf("/n age is:");
scanf("%d",&pe[i].age);
printf("/n sex is:");
pe[i].sex=getchar();
printf("/n");
}
}
void Output(P_message pe[],int n)
{
int i;
for(i=0;i<n;i++)
printf("Name:%s/nsex:%c/nage:%d/n",pe[i].Name,pe[i].sex,pe[i].age);
}