gpt4 book ai didi

c代码莫名其妙地跳行

转载 作者:行者123 更新时间:2023-12-02 07:32:54 24 4
gpt4 key购买 nike

当我出于某种原因编译这个小程序时,"printf("done")"行没有执行,我无法弄清楚原因。在我的 print 语句之前最初有一个 if block ,它也没有执行。我尝试通过 gdb 运行它并单步执行它。它找到了该行,但没有执行它。我正在尝试使用 gcc 4.7.2 编译它,并且我使用 gedit 3.4.2 作为我的文本编辑器。

这是我用来编译它的命令。

gcc teststuff.c -o test

这是代码

#include <stdio.h>

void testmethod()
{

int sign = 1;
printf("hello\n");
printf("%d\n",sign);


printf("done");
}

main(void)
{
testmethod();
return 0;
}

有人知道为什么要跳过那部分代码吗?谢谢!

最佳答案

最后换行。

printf("done\n");

标准输出通常是行缓冲的,这意味着您写入的数据只会在您完成一行后刷新到屏幕(除非您明确刷新它,例如使用 fflush()) .但是,它应该在程序退出时刷新(但不一定程序退出之前)。

此外,根据您的 shell,如果程序在没有换行符的情况下写入数据,您可能会在输出顶部看到命令提示符:

my-computer ~/projects/my-program $ ./a.out
hello
1
donemy-computer ~/projects/my-program $

关于c代码莫名其妙地跳行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20023721/

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