老实说--不知道如何表达这个问题的标题。但基本上,我希望有一个C++程序,它允许输入一个字符串(消息)和一个颜色-它将输出该颜色的字符串到控制台。就像PowerShell对“写主机”和"-ForegroundColor“所做的一样。
我把一切都做好了。只是我想要自动处理转义序列的能力。所以如果我运行这个:
c:\>myprogram.exe -Message "Hello there" -ForegroundColor Green
我得到绿色的“你好”。到目前为止还不错。但如果我这么做
c:\>myprogram.exe -Message "Hello\nthere" -ForegroundColor Green
我只听到一句“你好\n那里”。因为有了\n
,我想在两行上看到这个。与\t
一样,我希望对其进行解释并在输出中看到一个选项卡。
经过所有的颜色处理之后,这基本上就是代码所要做的:
//
// Display the message
//
Message += "\n";
std::cout << Message;
printf("%s", Message.c_str());
目前,printf
和std::cout
都只是看看它们的行为是否不同--它们没有。我猜行Message += "\n";
是在内部处理以添加实际的新行,而不是在发送到std::cout
或printf
时处理,因为最终的新行确实会按预期的方式处理。但是当包含在输入参数中提供的变量消息中时.不是的。
有没有办法只处理字符串中的所有转义码?或者我必须基本上操纵字符串,也就是说,根据\n
分解它,然后单独输出字符串的每个部分?
发布于 2020-03-10 07:07:40
C/ C++字符串转义序列由编译器解释,而不是由运行时系统解释。因此,是的,您必须执行自己的运行时字符串解析来处理您想要支持的自定义转义序列。
https://stackoverflow.com/questions/60620194
复制相似问题