gpt4 book ai didi

c# - 向控制台输出添加文本装饰

转载 作者:太空狗 更新时间:2023-10-29 19:49:29 25 4
gpt4 key购买 nike

我有一个 c# .net 3.5 应用程序,它使用 StreamWriter 将文本写入控制台。有没有一种方法可以为打印到控制台的文本添加下划线和删除线等文本装饰?可能使用 ANSI 转义序列?

TextWriter writer = new StreamWriter(Console.OpenStandardOutput());
writer.WriteLine("some underlined text");

谢谢,保罗H

最佳答案

在 Windows 10 内部版本 16257 及更高版本中:

using System;
using System.Runtime.InteropServices;

class Program
{
const int STD_OUTPUT_HANDLE = -11;
const uint ENABLE_VIRTUAL_TERMINAL_PROCESSING = 4;

[DllImport("kernel32.dll", SetLastError = true)]
static extern IntPtr GetStdHandle(int nStdHandle);

[DllImport("kernel32.dll")]
static extern bool GetConsoleMode(IntPtr hConsoleHandle, out uint lpMode);

[DllImport("kernel32.dll")]
static extern bool SetConsoleMode(IntPtr hConsoleHandle, uint dwMode);

static void Main()
{
var handle = GetStdHandle(STD_OUTPUT_HANDLE);
uint mode;
GetConsoleMode(handle, out mode);
mode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING;
SetConsoleMode(handle, mode);

const string UNDERLINE = "\x1B[4m";
const string RESET = "\x1B[0m";
Console.WriteLine("Some " + UNDERLINE + "underlined" + RESET + " text");
}
}

Console with underlined text

关于c# - 向控制台输出添加文本装饰,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5237666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com