有没有办法知道c语言中终端的背景色?

有没有办法知道c语言中终端的背景色?,c,linux,gcc,terminal,ansi-escape,C,Linux,Gcc,Terminal,Ansi Escape,我正在创建一个c程序,它使用ANSI转义序列参数为一些文本着色,如Ubuntu中的printf(“\e[38;2;r;g;bm”);; 问题是,如果控制台的背景与前景匹配,文本将不可见。如果我在白色背景中以黑色打印文本,文本将完全可见,但当相同的代码在黑色背景上运行时,文本将不可见 因此,我的计划是在运行时获取终端背景颜色,并相应地选择文本颜色 有没有办法在c中获取终端的背景色?ncurses库将窗口和终端数据保存在自己的缓冲区中。如果使用此库,则可以读取字符及其属性。使用函数 或者类似的除了它

我正在创建一个c程序,它使用ANSI转义序列参数为一些文本着色,如Ubuntu中的
printf(“\e[38;2;r;g;bm”);
; 问题是,如果控制台的背景与前景匹配,文本将不可见。如果我在白色背景中以黑色打印文本,文本将完全可见,但当相同的代码在黑色背景上运行时,文本将不可见

因此,我的计划是在运行时获取终端背景颜色,并相应地选择文本颜色


有没有办法在c中获取终端的背景色?

ncurses
库将窗口和终端数据保存在自己的缓冲区中。如果使用此库,则可以读取字符及其属性。使用函数
或者类似的

除了它的大小之外,你无法从终端读取太多的数据。@tadman ncurses将这些数据保存在内部。因此,如果你使用这个库,你可以获取这些数据。你尝试过了吗?你做的事情越多,你就越希望使用ncurses,或者你写的ncurses越痛苦。