2012-02-07 165 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