我有一个无符号的字符,我需要在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