目前使用c++ 20编程,使用Ubuntu WSL2。
使用下面所示的代码,当在Windows终端中运行WSL2中的程序时,光标变为不可见,按预期工作。
但是,当在vscode的集成终端中以WSL2运行程序时,光标在整个程序中都是可见的(为了以防万一,我甚至将terminal.integrated.scrollback
设置为0)。
函数curs_set(0)
在两端运行时不返回ERR
。这是vscode的集成终端的问题吗?有办法解决这个问题吗?
代码:
#include <ncurses.h>
int main() {
initscr();
noecho();
cbreak();
if (curs_set(0) == ERR) {
addstr("Not working");
}
mvaddstr(1, 1, "Random sentence.");
refresh();
getch();
mvaddstr(2, 1, "Random sentence number two.");
getch();
endwin();
}
在使用curs_set()
之前,我能够通过首先调用refresh()
来解决这个问题。