我有一個無符號的字符,我需要在printf之前轉換爲字符。因此,示例代碼是這樣的:C/C++鑄造的問題,無符號char到字符
unsigned char y = sample.result;
char x = (char)y;
printf("%c \n", x);
然而,printf
不打印x
但如果我使用COUT,x
打印correctly.I不知道爲什麼這樣。如何將一個unsigned char變量轉換爲char?我做錯了嗎? reinterpret_casting僅用於指針,而我的指針不是。提前致謝。
編輯:命令提示符返回給我一個笑臉「☺」的sample.result的值與unsigned char 1相對應。並且顯然netbeans無法打印這個笑臉。我不知道它是如何翻譯成笑臉的。任何幫助?編輯2:我只是意識到你不能打印字符x = 1;我只是意識到你不能打印字符x = 1;我只是意識到你不能打印字符x = 1;我只是意識到你不能打印字符x = 2;我只是意識到你不能打印字符x = 1;在netbeans中,並在命令提示符下打印,產生笑臉。原因是什麼? :(
你有什麼編寫和適合我的。你期望得到什麼,你會得到什麼? – GreenMatt 2011-02-25 04:20:04
也適用於我,無論是否有演員。 'sample.result'中你碰巧有一個高於127的值嗎? – 2011-02-25 04:21:53
如果你想使用一個醜陋的演員(醜陋的好方法!:),那麼我相信static_cast是你正在尋找的。它可能不會解決你的問題(我相信這個問題必須要做/卡爾的評論),但是這個工作是最接近的。 – 2011-02-25 04:37:38