gpt4 book ai didi

c - C 初学者 : Getting frustrated on a simple program

转载 作者:太空狗 更新时间:2023-10-29 15:14:15 25 4
gpt4 key购买 nike

#include<stdio.h>

int main()
{
char a, b;
scanf("%c", &a);
scanf("%c", &b);

printf("%c %c",a,b);
return 0;
}

当我运行这个程序时,我只得到一个 & 我没有得到输入第二个字符的提示。为什么?

最佳答案

在这一行中,

scanf("%c", &a);

您实际上是从标准输入(标准输入)中获取 %d,但是当您从标准输入输入一个字符时,您还从键盘输入了 ENTER,这意味着现在您在标准输入中有两个字符;字符本身 &\n。因此,程序将第一个字符作为 您输入的字符,将第二个字符作为 \n

你需要使用

scanf("%c\n", &a);

因此 scanf 吃掉换行符(通过按 ENTER 出现)。

作为rodrigo建议,您也可以使用这些。

scanf(" %c", &a); or scanf("%c ", &a);

您认为打印第二个字符的方式是错误的。它实际上正在打印,但它是\n 因此您的提示可能会出现在下一行。

如果您在不使用 ENTER 的情况下输入两个字符,您的代码将起作用。

shadyabhi@archlinux /tmp $ ./a.out 
qw
q wshadyabhi@archlinux /tmp $

请注意,当您使用它时,STDIN 中唯一的内容是 q & w。所以,第一次扫描得到q,第二次扫描得到w

关于c - C 初学者 : Getting frustrated on a simple program,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9039357/

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