清除控制台时 C++ 闪烁
Posted
技术标签:
【中文标题】清除控制台时 C++ 闪烁【英文标题】:C++ Flickering When Clearing the Console 【发布时间】:2017-08-25 03:12:05 【问题描述】:我正在尝试为使用 C++ 控制台制作的程序制作加载动画,我一直在使用 system("cls") 来清除控制台(我知道这是不好的做法),但主要问题是我运行程序时屏幕闪烁。我的代码如下所示:
有没有办法解决闪烁的问题?谢谢。
//loop
system("cls");
cout << "Loading..." << num << "%";
【问题讨论】:
我建议使用已经解决了这些问题的库,例如PDcurses,或Windows API console functions 你应该试试这个:support.microsoft.com/en-us/help/99261/… 【参考方案1】:虽然您可以按照评论者的建议使用 curses 样式库,但您可能正在寻找 SetConsoleCursorPosition
(2017 文档:https://docs.microsoft.com/en-us/windows/console/setconsolecursorposition)
BOOL WINAPI SetConsoleCursorPosition(
_In_ HANDLE hConsoleOutput,
_In_ COORD dwCursorPosition
);
参数
hConsoleOutput [输入]
控制台屏幕缓冲区的句柄。句柄必须具有 GENERIC_READ 访问权限。有关详细信息,请参阅控制台缓冲区安全和访问权限。
dwCursorPosition [in]
以字符为单位指定新光标位置的 COORD 结构。坐标是屏幕缓冲区字符单元格的列和行。坐标必须在控制台屏幕缓冲区的边界内。
清屏/cls 不适用于动画。
【讨论】:
以上是关于清除控制台时 C++ 闪烁的主要内容,如果未能解决你的问题,请参考以下文章
单片机控制TFT液晶,液晶驱动为ILI9341,请教各位大神如何实现动画显示且屏幕不闪烁?