scanf无法正常工作

山姆

我想从用户年龄,性别(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语句立即显示。如何一一显示它们,以接受用户输入的性别和婚姻状况。

谢尔盖·卡里尼琴科(Sergey Kalinichenko)

这是因为%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格式说明设置为忽略所有空格。请注意%格式说明符中的一个字符限制

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章