2011-03-21 56 views
1

我正在编写一个测试应用程序,并且希望尽可能简单。我记得有一种方法可以使用cout以ASCII格式将二进制数据打印到控制台。例如:使用`cout`查看控制台上的二进制数据

int myVar = 0x1234; 
cout << "My variable: 0x" << myVar << endl; 

我们希望,这将打印到控制台是这样的:

我的变量:为0x1234

有谁知道如何正确地修改ios(?)标志以ASCII格式将不可读数据打印到控制台?谢谢。

+0

您能否更具体地说明要打印什么“不可读数据”,以及“ASCII格式”是什么意思?您的示例已经以ASCII格式打印不可读数据。 – 2011-03-21 21:17:38

+0

你的问题不会与你想要的输出一致。 – 2011-03-21 21:46:43

回答

5

您似乎想要以十六进制格式打印二进制数据。这可以使用hex manipulator

#include <iostream> 
using namespace std; 

// ... 

int myVar = 0x1234; 
cout << "0x" << hex << myVar; // 0x1234 

请注意,这只适用于整数。

+0

@Jim:你得到了什么垃圾?适用于我 - > http://codepad.org/WjZxWIXF – 2011-03-21 21:30:28

+0

1.它适用于任何整型(例如'char','long','unsigned int'等),而不仅仅是int。 2.使用命名空间标准;必须死! :P – 2011-03-21 21:32:35

+0

@比利:再说#2 - 呃,骗子。如果你知道你在做什么,那很好。 – 2011-03-21 21:40:08