使用Clion遇到的问题
printf()函数语句执行后不打印
首先我们来看一个简单的代码:
1 |
|
正常情况下输出应该如图所示:
但是今天在使用Cion时突然变成这样:
可以看到,程序的所有输出都被放到了最后,也就是说我们无法在正确的时机看到printf()的内容
解决方法如下:
1 |
|
在main()函数中加入一句:setbuf(stdout.NULL)
加入后即可解决问题。
原因
标准输出流的模式被设置为有缓冲模式,计算机会先将需要输出的内容缓冲下来,最后再一并输出。
setbuf(stdout, NULL)
用于设置标准输出流 stdout
为无缓冲模式。具体来说,这意味着每次调用 printf
或其他输出函数时,数据会立即输出到控制台,而不是先存储在缓冲区中。
以下是详细步骤:
setbuf
是一个标准库函数,用于设置流的缓冲模式。stdout
是标准输出流,通常指向控制台。NULL
参数表示禁用缓冲,即设置为无缓冲模式。
使用Clion遇到的问题
http://blog.ulna520.com/2024/09/21/Clion/