gpt4 book ai didi

c - scanf() 函数的魔力?

转载 作者:行者123 更新时间:2023-11-30 18:43:41 24 4
gpt4 key购买 nike

为什么运行这段代码并打印整个字符串?

#include <stdio.h>

void main()
{
int a;
while(a!='q')
{
scanf("%c",&a);
printf("%c",a);
}
}

输入除q之外的字符串,最后按回车键。现在您的字符串才会打印在屏幕上。为什么?

最佳答案

这里的问题不在于 scanf,而在于您的 printf 调用。

Printf 会缓冲输出,直到到达新行,因此程序在您 printf("\n"); 之前不会显示任何内容。 (当有人按 Enter 时也会发生这种情况,您将他们的返回输出到屏幕,这会导致缓冲区刷新。)

如果您不想使用 printf("\n") 分解输出,则可以使用 fflush(stdout) 手动刷新缓冲区不打印任何内容,如下所示:

int a;
while(a!='q')
{
scanf("%c",&a);
printf("%c",a);
fflush(stdout);
}

关于c - scanf() 函数的魔力?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2973449/

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