gpt4 book ai didi

c - printf ("\033c") 是什么意思?

转载 作者:太空宇宙 更新时间:2023-11-04 05:06:33 25 4
gpt4 key购买 nike

我正在寻找一种在关闭我的程序后“重置”我的 Unix 终端窗口的方法,并且偶然发现了 printf("\033c"); 它工作得很好,但我就是做不到明白它。我去了 man console_codes 并且因为我对 Unix c 编程有点缺乏经验,所以它不是很有帮助。

谁能解释一下 printf("\033c");

最佳答案

在 C 中,以零开头的数字是 octal数字。以 8 为基数的数字。

它的作用是打印八进制数 33 表示的字符其次是 'c' .

ASCII encoding八进制数 33ESC (转义)字符,这是终端控制序列的通用前缀。

有了搜索终端控制序列的知识,我们可以找到例如this VT100 control sequence reference (VT100 是一个旧的“哑”终端,并且被大多数现代终端程序模拟)。使用 VT100 引用我们找到 <ESC>c在终端设置部分,它被记录为

Reset Device <ESC>c

Reset all terminal settings to default.


ESC也可以使用 "\x1b" 打印字符(仍然假设 ASCII 编码)。常量字符串文字中无法使用十进制数字,只能使用八进制和十六进制。

但是(如 the comment by chux 所述)序列 "\x1bc" 不会做与"\033c"相同的事情.那是因为 0x1bc是一个有效的十六进制数,编译器在解析此类序列时贪婪。它将打印由值 0x1bc 表示的字符相反,我不知道它可能是什么(我想取决于区域设置和终端设置,可能会打印为 Unicode 字符)。

关于c - printf ("\033c") 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47503734/

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