C语言接受数据的问题

来源:百度知道 编辑:UC知道 时间:2024/05/16 17:52:07
#include <stdio.h>

void main()
{
char gender, ms;
int age;

/* 接收司机的详细信息*/
printf(" 司机的详细信息");
printf("司机的婚姻状况 (Y / N):");
scanf("%c", &ms);
printf("司机的性别 (M / F): ");
scanf("%c", &gender);
printf("司机的年龄: ");
scanf("%d", &age);

}
scanf("%c", &gender);这一行代码没有执行,不知道为什么?大家帮忙看看

其实是有执行的,只是把上次输入时的回车符读取了,解决方法:

scanf("%c", &gender);

在此之前加一行:

fflush(stdin);

即将程序改为如下形式:

#include <stdio.h>

void main()
{
char gender, ms;
int age;

/* 接收司机的详细信息*/
printf(" 司机的详细信息");
printf("司机的婚姻状况 (Y / N):");
scanf("%c", &ms);
printf("司机的性别 (M / F): ");
fflush(stdin);
scanf("%c", &gender);
printf("司机的年龄: ");
scanf("%d", &age);

}