Code::Blocks C++ 中的扩展 Ascii 字符
我正在尝试使用 C++ 和 Code::Blocks (字符代码大于 128)在控制台应用程序中使用扩展 Ascii 代码。 http://www.asciitable.com/ 控制台显示菱形内有一个问号。
到目前为止我尝试过:
char myChar = 200;
cout << myChar;
cout << static_cast<char>(200);
I'm trying to use extended Ascii codes in a console application using C++ and Code::Blocks (character codes greater than 128). http://www.asciitable.com/
The console shows a question mark inside a diamond.
I tried so far:
char myChar = 200;
cout << myChar;
cout << static_cast<char>(200);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
char 无法容纳整个字符集,
请使用 unsigned char 代替。
char 通常是有符号的char。
它可以保存从 -128 到 127 的值。ASCII 非常适合 0 到 127,因此在使用 ASCII 时 char 是合理的。
对于非 ASCII 字符 128 到 255,您需要更大的字符。
unsigned char 可以存储从 0 到 255 的值。这涵盖了整个字符集。
这正是您所需要的。
还有其他事情需要研究。您可以阅读有关 unicode 的内容。但是 unsigned char 应该可以帮助您解决当前的问题。
char can't hold the whole character set
use unsigned char instead.
a char is generally a signed char.
it can hold values from -128 to 127. ASCII fits nicely in 0 to 127, so char is reasonable when working with ASCII.
For the non-ASCII characters 128 to 255, you need something bigger.
unsigned char can store values from 0 to 255. That covers the whole character set.
It's just what you need.
There are other things to research. You can read about unicode. But unsigned char should get you around your current issue.