printf( "%cx" , FILE2CHAR(F(fr))) to cout

printf("%cx", FILE2CHAR(F(fr))) to cout

本文关键字:fr to cout FILE2CHAR %cx printf      更新时间:2023-10-16

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

仍然有点困惑,所以我将介绍这两种情况。

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