gpt4 book ai didi

c - 控制台窗口中出现随机像素

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

我正在编写一个 C Windows 控制台应用程序,有时屏幕上会出现奇怪的像素。

更具体地说,应用程序在屏幕上写入和删除不同颜色的字符,有时似乎无法完全删除它们,而是留下一个像素。

我专门用来打印的函数是:

STATIC
STATUS
PositionPrint(
__in COORD tPosition,
__in WORD wColorAttributes,
__in TCHAR cChar
)
{
SNOWFLAKE__STATUS eRetval = STATUS_INVALID;
BOOL bConsoleRetval = FALSE;

bConsoleRetval = SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), tPosition);
RETVAL_CHECK(
bConsoleRetval,
STATUS_SET_CONSOLE_CURSOR_POSITION_FAILED,
"SetConsoleCursorPosition failed"
);

bConsoleRetval = SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), wColorAttributes);
RETVAL_CHECK(
bConsoleRetval,
STATUS_SET_CONSOLE_TEXT_ATTRIBUTES_FAILED,
"SetConsoleTextAttribute failed"
);

_tcprintf(_T("%c"), cChar);
lblCleanup:
return eRetval;
}

RETVAL_CHECK 宏(以防万一):

#ifdef _DEBUG
#define DEBUG_PRINT(message) (printf("%s %d %s %d %s\n", __FILE__, __LINE__, __FUNCTION__, GetLastError(), (message)))
#else
#define DEBUG_PRINT(message)
#endif

#define RETVAL_CHECK(_condition, _error, _message) \
do \
{ \
if (!(_condition)) \
{ \
eRetval = (_error); \
DEBUG_PRINT(_message); \
goto lblCleanup; \
} \
} while (0,0)

要删除一个字符,我只是在同一位置打印一个空格。

我的电脑上装有 Windows 10。

有谁知道导致问题的原因或解决方法吗?

最佳答案

我认为这只是我字体的问题。
我将我的默认 CMD 字体设置为 Courier New(用于支持希伯来语)。
将其改回 Lucida Console 似乎已经解决了问题。

关于c - 控制台窗口中出现随机像素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39309102/

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