gpt4 book ai didi

c++ - 调用 AISI 转义序列时避免行返回

转载 作者:太空宇宙 更新时间:2023-11-04 03:46:13 24 4
gpt4 key购买 nike

我创建了这个函数,通过使用 ainsi 转义序列更改终端窗口的标题,但在调用此函数后,控制台中会跳转一行,如何避免这种情况?

void setConsoleTitle(std::string const& title)
{
m_title = title;
std::string cmd1 = "echo \"\033]0;";
cmd1 += title;
cmd1 += "\007\"";

system(cmd1.c_str());
}

谢谢。

最佳答案

真的不要在这里使用 system (它启动一个新进程,在该进程中运行 shell,然后在该 shell 中运行 echo,并拆除该新进程 - 将一些字符输出到屏幕需要大量工作,也可以使用 cout 或类似的输出 - 如果您需要运行编译器或解压 zip 文件,则可以使用 system - 某些不是在您自己的程序中不容易做到)。但如果您坚持使用system,则使用echo -n ...,其中man echo将其解释为:

-n do not output the trailing newline

但是,仅使用 cout 在这里就可以了:

 cout << "\033]0;" << title << "\a";

(\a 是“警报”,与 \007 相同,但可移植,以防您的系统不使用字符数字 7 来“响铃”)

为什么你想打印“噪音”超出了我的范围,但上面的功能与你的“echo”命令相同。

关于c++ - 调用 AISI 转义序列时避免行返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28083538/

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