我如何用“cout”表达printf("%cx", FILE2CHAR(F(fr)))
?
(注意:FILE2CHAR(F(fr))返回一个int`)
我试过cout<<hex<<FILE2CHAR(F(fr));
但在某些情况下,它仍然给我错误的十六进制。
我的错误。 FILE2CHAR(F(fr))不返回int。 F(fr)返回一个int
FILE2CHAR是一个宏:
#define FILE2CHAR(f) ('a'+(f)) /* file to text */
抱歉这令人困惑
请帮忙〜
你打算打印什么? %cx将打印一个字符,后跟x。为什么还要使用六角机械手呢? - parkydr
因为我认为x指的是十六进制,我是对的吗?有点混淆这里的语法。
答案 0 :(得分:0)
仍然有点困惑,所以我将涵盖这两种情况。
要打印字符,printf应为
printf("%c", FILE2CHAR(F(fr)));
等效流
cout << static_cast<char>(FILE2CHAR(F(fr)));
强制转换是必需的,因为FILE2CHAR将返回一个整数,因此cout将显示整数值。
要打印十六进制值,printf应为
printf("%x", FILE2CHAR(F(fr)));
等效流
cout << hex << FILE2CHAR(F(fr));
注意:在您使用dec操纵器之前,所有后续数字都将以十六进制显示。