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

C#如何实现控制台语句逐字符逐个打印的效果

C# 控制台逐字符打印句子实现方案

现有代码问题点

  • 调用Array.Reverse()反转了字符数组,会导致输出顺序和原句完全相反
  • 使用Console.WriteLine()打印字符,每次打印后自动换行,每个字符都会单独占据一行
  • 之前使用Thread.Sleep()无法看到逐字效果,是因为控制台默认采用行缓冲机制,只有遇到换行符、输出缓存已满、程序退出三个场景才会把缓存内容输出到屏幕,使用Console.Write()打印单字符不会触发缓存刷新,所有字符会等到打印完成后统一显示,看不到分步效果

兼容全版本的实现代码

using System;
using System.Threading;

namespace CharPrintDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            string streamer = "Who is your favorite streamer?";
            foreach (char c in streamer)
            {
                Console.Write(c);
                // 强制刷新输出缓存,立刻显示当前字符
                Console.Out.Flush();
                // 调整数值控制打印速度,单位为毫秒,数值越大打印越慢
                Thread.Sleep(100);
            }
            Console.ReadLine();
        }
    }
}

.NET 5+ 简化写法

如果运行环境为.NET 5及以上版本,可以开启控制台自动刷新属性,无需每次手动刷新缓存:

using System;
using System.Threading;

namespace CharPrintDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // 开启自动刷新,每次输出后直接同步到屏幕
            Console.Out.AutoFlush = true;
            string streamer = "Who is your favorite streamer?";
            foreach (char c in streamer)
            {
                Console.Write(c);
                Thread.Sleep(100);
            }
            Console.ReadLine();
        }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 16:54:03