gpt4 book ai didi

c - 打印从用户获得的 int 值

转载 作者:太空宇宙 更新时间:2023-11-04 06:23:14 24 4
gpt4 key购买 nike

问题出在 age 部分,编译器没有给我任何错误,但是当我运行它时,它为 int age< 打印了一个 random number/

printf("Enter your name:");
scanf(" %s",&name1);
int age;
printf("\n\nHow old are you?");
scanf(" %d",&age);
char gender;
printf("\n\nEnter your gender[Male/Female]:");
scanf(" %s",&gender);
char confirmation;
printf("Confirmation: Your name is %s , you are %d years old , and you are a %s.\n\nAnswer[Y/N]:",&name1,age,&gender);

最佳答案

这是你的问题。

char gender;
scanf(" %s",&gender);

gender 是一个 char。也就是说,它只有一个 1 字节字符的内存。但是您将其用作字符串。您可能对 name1 有同样的问题,因为您也为此使用了 & 但不能确定,因为您没有显示。

将其更改为:

char gender[8] // Enough to fit "Female" and terminating NULL
scanf("%7s", gender);

额外注意:scanf 用于防止缓冲区安全有点笨拙。可以考虑用 sscanf 代替 fgets

关于c - 打印从用户获得的 int 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30562793/

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