我想从用户年龄,性别(m / f),婚姻状况(m / u)中选择3个输入。 我使用char数据类型来表示性别和婚姻状况。这是下面的代码..
#include<stdio.h>
#include<conio.h>
main() {
int age;
char gender,marital_status;
printf("Enter your age: ");
scanf("%d",&age);
printf("Enter your gender (m/f): ");
scanf("%c",&gender);
printf("\nEnter your marital status (m/u): ");
scanf("%c",&marital_status);
}
年龄部分是核心工作,即它需要用户的年龄并将其存储到年龄。但之后,两个printf语句一下子显示出来。如何逐一显示它们以从用户那里获取性别和婚姻状况。
答案 0 :(得分:3)
这是因为%c
接受了'\n'
符号,这些符号在进入年龄后遗留下来。你最好读一个字符串,并取第一个字符,如下所示:
char buf[2];
printf("Enter your gender (m/f): ");
scanf("%1s", buf);
gender = buf[0];
printf("\nEnter your marital status (m/u): ");
scanf("%1s", buf);
marital_status = buf[0];
%s
格式说明符设置为忽略所有空格。请注意格式说明符中%
后的一个字符限制。