C 直到中断才打印的printf语句
我在程序开始时运行的一些代码中添加了一些printf语句,但是这些语句不会打印到stdout,直到我在终端中使用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
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