gpt4 book ai didi

控制台输出以错误的顺序出现

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

我正在使用 win 8.1 64 位 Eclipse Luna 4.4.0 并使用 gcc 4.6.4 进行编译,问题是例如

在这个简单的程序中,我的 printfscanf 语句以错误的顺序出现在控制台上。

#include <stdio.h>
#include <stdlib.h>

int main(void) {

int i;

printf("Enter int: ");
scanf("%d",&i);
printf("Hello %d\n",i);

return EXIT_SUCCESS;
}

它这样做:

4

Enter int: Hello 4

而不是这个:

Enter int: 4

Hello 4

最佳答案

printf 被缓冲1。这意味着当您调用它时,它不会立即打印。相反,它将存储您告诉它打印的内容,并在缓冲区中存储了足够的文本时自动打印。

如果您在 print 语句中使用 \n after,它将自动打印整个缓冲区(这就是为什么最后一次调用 printf 会打印所有内容)。对于您的情况,您可能需要使用 fflush

进行手动刷新
printf("Enter int: "); fflush(stdout);
scanf("%d",&i);
printf("Hello %d\n",i);

1 从技术上讲,缓冲的是 stdout,但此时更容易将其视为缓冲的 printf

关于控制台输出以错误的顺序出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26419110/

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