我正在使用一些 native Windows 控制台功能,如果不是它们的易用性,它们的速度给我留下了深刻的印象。
反正我早就知道下面的代码会产生一些有趣的字符
for(int i = 0; i < 256; i++)
{
cout << char(i) << endl;
}
但是,我无法让 FillConsoleOutputCharacter 或 WriteConsoleOutput 生成所有这些字符(许多只是显示为问号)。
这是我使用的代码示例:
COORD spot = {0,0};
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
DWORD Written;
for(int i = 0; i < 256; i++)
{
FillConsoleOutputAttribute(hOut, 7, 1, spot, &Written);
FillConsoleOutputCharacterW(hOut, char(i), 1, spot, &Written);
spot.Y++;
}
有谁知道用原生函数写这些字符的相对方便的方法吗?
顺便说一句,我在 Windows 7 x64 上使用 Visual Studio 2010。
尝试使用 FillConsoleOutputCharacterA 而不是 FillConsoleOutputCharacterW,它使用的是 unicode 字符,需要一点知识才能正确获取。
编辑 我尝试使用 FillConsoleOutputCharacterA,它提供与您的第一个案例等效的输出。
我是一名优秀的程序员,十分优秀!