如何在 Windows 10 中使用 C++ 输出低 ASCII?
How to output low ASCII using C++ in Windows 10?
我正在尝试在 Windows 10 上为一个简单的 C++ 贪吃蛇游戏输出方向箭头。但是,使用此 table 作为参考:
ASCII reference
我得到的只是控制台中的这个小问号:
Tiny question mark
我想输出符号 16、17、30 和 31。我不太懂程序员,所以这可能是一些基本错误,但有些符号确实有效,而另一些则导致上面的那个符号。
一个小例子:
void showSnake() {
char snakeHead;
snakeHead = 31;
cout << snakeHead; //THIS SHOWS THE TINY QUESTION MARK
snakeHead = 62;
cout << snakeHead; //THIS SHOWS THE ">" SYMBOL
}
你应该使用Unicode,你会有更多的字符选择。
在 https://en.wikipedia.org/wiki/List_of_Unicode_characters 上,我发现这个符号“▶”与您想要使用的符号相似。
它的unicode值是U+25BA
,这意味着你可以在C++中创建一个值为'\u25BA'
的字符。
但是实际上该值会超出 char
类型的范围,因此您必须使用宽字符 (wchar
) 才能完成工作。
根据 this answer you should also toggle support for Unicode character in stdout using the _setmode
function (see here) 来自 C 运行-时间库。
#include <iostream>
#include <io.h>
int main() {
_setmode(_fileno(stdout), _O_U16TEXT);
std::wcout << L'\u25BA';
}
setlocale() 行是为了防止默认语言环境不支持非 ACSII 输出(我的机器上不支持)。
我正在尝试在 Windows 10 上为一个简单的 C++ 贪吃蛇游戏输出方向箭头。但是,使用此 table 作为参考:
ASCII reference
我得到的只是控制台中的这个小问号:
Tiny question mark
我想输出符号 16、17、30 和 31。我不太懂程序员,所以这可能是一些基本错误,但有些符号确实有效,而另一些则导致上面的那个符号。
一个小例子:
void showSnake() {
char snakeHead;
snakeHead = 31;
cout << snakeHead; //THIS SHOWS THE TINY QUESTION MARK
snakeHead = 62;
cout << snakeHead; //THIS SHOWS THE ">" SYMBOL
}
你应该使用Unicode,你会有更多的字符选择。
在 https://en.wikipedia.org/wiki/List_of_Unicode_characters 上,我发现这个符号“▶”与您想要使用的符号相似。
它的unicode值是U+25BA
,这意味着你可以在C++中创建一个值为'\u25BA'
的字符。
但是实际上该值会超出 char
类型的范围,因此您必须使用宽字符 (wchar
) 才能完成工作。
根据 this answer you should also toggle support for Unicode character in stdout using the _setmode
function (see here) 来自 C 运行-时间库。
#include <iostream>
#include <io.h>
int main() {
_setmode(_fileno(stdout), _O_U16TEXT);
std::wcout << L'\u25BA';
}
setlocale() 行是为了防止默认语言环境不支持非 ACSII 输出(我的机器上不支持)。