You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

printf输出出现非预期换行问题,待打印变量通过fgets读取获取

问题根因

  • 该换行问题与Visual Studio开发环境无关,是fgets函数的标准固有行为导致:fgets从标准输入读取内容时,会将你按下回车键输入的\n换行符一同存储到目标字符串的末尾,因此你存放在name、client字段中的字符串本身就携带了换行符,printf输出时自然会触发换行效果。

修复方案

你只需要在每次调用fgets读取输入后,手动移除字符串末尾的换行符即可,参考实现代码如下:

#include <string.h> // 需要先引入该头文件才能使用strchr函数

fgets(database_publishers[pointer].name, STRING_SIZE, stdin);
// 查找字符串中是否存在末尾换行符并移除
char *p_newline = strchr(database_publishers[pointer].name, '\n');
if (p_newline != NULL) {
    *p_newline = '\0';
}

对client字段的输入也做同样处理即可解决输出换行的问题。

内容的提问来源于stack exchange,提问作者f4ll1nnn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 07:06:03