printf(“%cx”,FILE2CHAR(F(fr)))到cout

时间:2013-02-08 23:49:58

标签: c++ printf cout

我如何用“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指的是十六进制,我是对的吗?有点混淆这里的语法。

1 个答案:

答案 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操纵器之前,所有后续数字都将以十六进制显示。