在C中循环通过十六进制变量

时间:2010-05-17 20:06:03

标签: c++ c hex

我在一个项目中有以下代码,writepacket的ascii表示形式的unix tty:

int written = 0; 
int start_of_data = 3; 
//write data to fifo 
while (length) { 
        if ((written = write(fifo_fd, &packet[start_of_data], length)) == -1) 
{ 
                printf("Error writing to FIFO\n"); 
        } else { 
                length -= written; 
        } 
} 

我只想获取本应写入套接字的数据并将其放入变量中。为了调试,我刚刚尝试printf第一个字母/数字。我已经尝试了很多方法来打印出来,但我一直在寻找十六进制形式(我认为)。

预期产量为:13176 并且十六进制值是:31 33 31 37 36 0D 0A(如果它甚至是十六进制)

显然,我的C技能并不是棚中最尖锐的工具。任何帮助将不胜感激。

更新:我正在使用hexdump()来获取输出

1 个答案:

答案 0 :(得分:2)

这些是ASCII codes字符:31是'1',33是'3'等等.0D和0A是终止的新行字符,也称为'\ r'和'\ n',分别。因此,如果您将值转换为字符,则可以直接打印出来,例如printf使用%c%s格式代码。您可以从链接的表中查看,您发布的值确实代表“13176”: - )