gpt4 book ai didi

有人知道如何处理这个问题吗?

转载 作者:行者123 更新时间:2023-11-30 18:33:34 26 4
gpt4 key购买 nike

我是编程新手,我已经开始自学C语言。虽然下面的截图有问题,但我无法理解它的逻辑。具体来说,我不知道为什么 C 会跳过被调用函数中的 scanf 部分。调用顺序重要吗?非常感谢。

这是屏幕截图:https://imgur.com/a/fnfm9al

#include <stdio.h>
void GiveLetter(); // function prototype #1
void GiveNumber(); // function prototype #2
int main ()
{
int x;
printf("Give me the first number:");
scanf("%d",&x);
printf("Your first number is: %d\n",x);
printf("Hello Panos\n");
GiveLetter();
GiveNumber();
return 0;

}
void GiveLetter()
{
char Letter;
printf("Give a letter:\n");
scanf("%c",&Letter);
printf("Your letter is %c\n",Letter);
}
void GiveNumber()
{
int Number;

printf("Give the second number:");
scanf("%d",&Number);
printf("Your second number is %d\n",Number);
}

最佳答案

您在 main() 中扫描了一个数字。这会将 ENTER 留在输入缓冲区中,该缓冲区由函数内的 scanf 读取。

要求 scanf 忽略空格(与 "%c" 不同,"%d" 本身已经忽略空格)

scanf(" %c", ...);
// ^ ignore whitespace

更好了。 使用fgets()进行用户输入。这是一种安全的替代方案,具有良好的错误报告和恢复功能。

关于有人知道如何处理这个问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56620199/

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