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

Console.WriteLine偶发不换行问题:排查与解决咨询

Console.WriteLine() 输出未换行导致内容同行的问题解决建议

问题现象

开发应用时发现,调用Console.WriteLine()并非每次都能正常换行——写入的字符串未被换行符终止,导致下一次Console.WriteLine()的输出会出现在同一行。

复现代码

@Wyck提供了更简洁的复现代码:

for (var i = 0; i < 30; i++) 
Console.WriteLine(i.ToString().PadRight(100 + i, 'a'));

以下是包含额外逻辑的原始测试代码:

internal class Program
{
    static void Main(string[] args)
    {
        var rnd = new Random();

        for (var i = 0; i < 200; i++)
        {
            Thread.Sleep(rnd.Next(0, 10));
            var str = i.ToString().PadRight(rnd.Next(90, 130), 'a');

            switch (rnd.Next(0, 3))
            {
                case 0:
                    ConsoleEx.WriteLineInfo(str);
                    break;
                case 1:
                    ConsoleEx.WriteLineWarning(str);
                    break;
                case 2:
                    ConsoleEx.WriteLineError(str);
                    break;
            }
        }

        Console.ReadKey();
    }
}

internal static class ConsoleEx
{
    #region Static Public Methods

    public static void WriteLine(string str, ConsoleColor foregroundColor)
    {
        //var oldForegroundColor = Console.ForegroundColor;
        //Console.ForegroundColor = foregroundColor;
        Console.WriteLine(str);
        //Console.ForegroundColor = oldForegroundColor;
    }
    public static void WriteLineError(string str) => WriteLine(str, ConsoleColor.Red);
    public static void WriteLineInfo(string str) => WriteLine(str, ConsoleColor.Green);
    public static void WriteLineWarning(string str) => WriteLine(str, ConsoleColor.Yellow);

    #endregion
}

触发条件观察

  • 仅运行生成的.exe文件时能复现,调试环境下从未出现;
  • 使用输出重定向ConsoleApp.exe > output.txt时无法复现;
  • 修改Console.ForegroundColor不会引发该错误。

推测问题可能与使用的Windows Terminal版本1.16.10262.0相关。

解决建议

临时规避方案

  • 手动在输出字符串末尾追加换行符,比如改用Console.WriteLine(str + Environment.NewLine)(注意:终端正常时可能出现重复换行,可根据运行环境做判断);
  • 切换到传统命令提示符(cmd.exe)运行程序,验证是否仅Windows Terminal存在该问题;
  • 将Windows Terminal更新至最新版本,查看是否已修复此bug。

官方反馈

若更新Windows Terminal后问题仍存在,且确认是终端的兼容性问题,建议提交bug到官方仓库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 00:48:34