Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 直到中断才打印的printf语句_C_Printf - Fatal编程技术网

C 直到中断才打印的printf语句

C 直到中断才打印的printf语句,c,printf,C,Printf,我在程序开始时运行的一些代码中添加了一些printf语句,但是这些语句不会打印到stdout,直到我在终端中使用ctrl c终止程序,它们显示在终端提示符的同一行。例如,下面演示代码中的printf如下所示 [notice] Interrupt: exiting. yabbadabbadoo/usr/local/bin 13:24:21 : 这是为什么?如何改变?i、 e.在应用程序代码中是否有某个地方,开发人员以某种方式将printf语句设置为在退出时打印 some_function_na

我在程序开始时运行的一些代码中添加了一些printf语句,但是这些语句不会打印到stdout,直到我在终端中使用
ctrl c
终止程序,它们显示在终端提示符的同一行。例如,下面演示代码中的printf如下所示

[notice] Interrupt: exiting.
yabbadabbadoo/usr/local/bin 13:24:21 : 
这是为什么?如何改变?i、 e.在应用程序代码中是否有某个地方,开发人员以某种方式将printf语句设置为在退出时打印

some_function_name(){
  printf("yabbadabbadoo");

}
在应用程序代码中是否有某个地方,开发人员以某种方式将printf语句设置为在退出时打印

some_function_name(){
  printf("yabbadabbadoo");

}
不,通常,标准输出
stdout
为。因此,除非缓冲区已满或收到换行符,否则不会刷新内容

当程序终止时,所有打开的缓冲区都会自动刷新,这就是为什么在终止程序后可以看到输出

在您的情况下,需要强制刷新缓冲区,以使输出显示在终端上。你也可以

  • 在格式字符串的末尾添加换行符
    '\n'
  • 在调用
    printf()之后使用

确保冲洗。

添加
fflush(标准输出)@WeatherVane将其添加到何处?添加到程序代码或我的终端?将其添加到程序代码中,在要立即查看其输出的
printf
语句之后。包含最后一个
\n
换行符通常也会刷新输出,但我不确定这是否是标准功能,有时您可能不需要换行符。错误:链接器命令失败,退出代码为1:警告:函数“flush”的隐式声明在C99中无效对不起,键入错误:
fflush