napori 发表于 2024-2-27 16:56:14

请问为什么最后的函数butler中的printf不会打印出来

#include<stdio.h>
void butler(void);
int main(void)
{
    printf("I will summon the butler function.\n");
    butler();
    printf("Yes. Bring me some tea and writeable DVDs.\n");

    return 0;
}
void butler(void)
{
    printf("You rang, sir?\n");
}

FishC 发表于 2024-2-27 16:56:31

这是因为在函数butler中,printf语句后面没有使用换行符\n,导致输出没有立即刷新。解决这个问题有两种方法:

1. 在butler函数的最后加上一个换行符\n:
void butler(void)
{
    printf("You rang, sir?\n");
}

2. 在butler函数的最后加上强制刷新的代码`\fflush(stdout)`:
void butler(void)
{
    printf("You rang, sir?");
    fflush(stdout);
}

通过以上两种方法的任一种,都能确保在调用butler函数后,立即输出内容。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

歌者文明清理员 发表于 2024-2-27 17:39:27

会输出的,你检查下是不是没有重新编译?
页: [1]
查看完整版本: 请问为什么最后的函数butler中的printf不会打印出来