Clion中C语言printf语句末尾空格出现晚输出或被截断问题
问题根因
该异常与C语言代码逻辑、printf函数实现无关,是CLion集成运行控制台的默认特殊配置导致的输出后处理问题,非CLion环境、未开启对应配置的CLion实例均不会复现。调整代码传参写法不会生效,因为异常发生在代码输出之后的控制台处理环节。
修复方案
- 方案1:关闭控制台尾随空格修剪
打开CLion左上角File->Settings-> 展开Build, Execution, Deployment分类 -> 选择Console选项页,取消勾选 Remove trailing spaces on output lines(部分中文版本显示为「修剪输出行的尾随空格」),保存设置后重新运行代码即可恢复正常。 - 方案2:使用原生终端模拟输出
右键点击当前运行的项目目标,选择Edit Configurations,勾选 Emulate terminal in output console(在输出控制台中模拟终端),该配置会调用系统原生终端逻辑处理输出,跳过CLion自带的输出修饰逻辑。 - 方案3:强制刷新输出缓冲区(临时验证用)
如需临时验证问题根因,可在每句printf后添加fflush(stdout);强制将缓冲区内容立刻输出,也可规避该异常:printf("abc "); fflush(stdout); printf("d");
内容的提问来源于stack exchange,提问作者Kcris
相关产品推荐
相关产品推荐

