2012-02-07 158 views
1

我想在使用C++和Code :: Blocks(字符代码大于128)的控制台应用程序中使用扩展的Ascii代码。 http://www.asciitable.com/ 控制台在钻石内部显示问号。Code :: Blocks中的扩展Ascii字符C++

我试过到目前为止:

char myChar = 200; 
cout << myChar; 

cout << static_cast<char>(200); 
+1

扩展ASCII不存在。陈述你想要的编码,并设置你的控制台使用上述编码。 – 2012-02-07 23:05:54

+0

如果我们想把它称为扩展ascii,那么我们可以。那么! – 2012-02-07 23:08:54

+0

@DavidHeffernan:问题是,有*许多*“扩展ASCII”编码。参考[有更好答案的类似问题](http://stackoverflow.com/questions/618332/c-extended-ascii-characters)。 – 2012-02-07 23:11:27

回答

2

字符无法容纳整个字符集

使用无符号的字符,而不是

unsigned char myChar = 200; 
cout << myChar << endl; 

一个焦炭一般是符号字符。 它可以保存从-128到127的值。ASCII适合在0到127之间,所以当使用ASCII时char是合理的。

对于非ASCII字符128到255,您需要更大的东西。 无符号字符可以存储从0到255的值。涵盖整个字符集。 这正是你需要的。

还有其他的事情要研究。你可以阅读关于unicode。但无符号字符应该让你在你目前的问题。

+0

它也没有工作。 – 2012-02-07 23:40:39