gpt4 book ai didi

c++ - scanf 没有按预期工作

转载 作者:太空宇宙 更新时间:2023-11-04 02:04:07 25 4
gpt4 key购买 nike

我想从用户年龄、性别(男性/女性)、婚姻状况(男性/女性)中获取 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);


}

age 部分正常工作,即它从用户那里获取年龄并将其存储到 age。但在那之后,下面的两个 printf 语句同时显示。如何将它们一一显示以获取用户输入的性别和婚姻状况。

最佳答案

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

关于c++ - scanf 没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22732804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com