gpt4 book ai didi

c - 在 C 中使用 'CLS' 命令导致屏幕闪烁

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

每次我要 printf 时,我都试图清除我的控制台(带有 GCC 编译器的 Windows 环境)。我正在使用 CygWin,我唯一能做到的方法是使用 system("cmd/c cls");。这工作正常,但它会导致屏幕闪烁几分之一秒,这显然很烦人。

是否有其他清除控制台屏幕的方法?

最佳答案

我要做的第一件事就是停止使用 cmd 来完成它。 CygWin,假设您在 shell 中的某处运行而不是 Windows 控制台,有一个“ native ”选项,您可以使用以下任一选项:

clear
tput clear

清除屏幕,而不调用外部 cmd 解释器。

因此,在 CygWin 中运行的程序中,您可以使用简单的方法清除屏幕:

system("clear");

当然,如果您不想运行任何 外部可执行文件,您可以使用curses 达到同样的目的。例如,以下程序会为您清屏(确保在编译命令末尾包含 -lcurses):

#include <curses.h>

int main (void) {
WINDOW *w = initscr();
clear(); refresh(); sleep(2);
endwin();
return 0;
}

不要因为它在退出时恢复这一事实而挂断电话,您不会将此程序用作屏幕清除独立程序。相反,这些语句将被合并到您自己的程序中,在 initscr()endwin() 调用之间,类似于:

#include <curses.h>

int main (void) {
char buf[2],
*msg = "Now is the time for all good men to come to lunch.";
WINDOW *w = initscr();

buf[1] = '\0';
clear();
refresh();
while (*msg != '\0') {
buf[0] = *msg++; addstr(buf);
if ((buf[0] == ' ') || (buf[0] == '.')) {
refresh();
sleep(1);
}
}

endwin();
return 0;
}

此程序使用 curses 清除屏幕,然后以单词大小的 block 输出消息。

关于c - 在 C 中使用 'CLS' 命令导致屏幕闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32344825/

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