2011-12-02 83 views
2

我想验证我的指针是否到位,我想以十六进制格式打印cl_uchar(无符号字符OpenCL类型)的值。我想:在C++中使用cout以十六进制格式打印OpenCL cl_uchar?

cout << "Data matrix 0,3 = " << clMatrixPerm->data_matrix->elements[4] << endl;

cout << "Data matrix 0,3 = " << hex << clMatrixPerm->data_matrix->elements[4] << endl;

其中clMatrixPerm->data_matrix->elements[4]是要打印的阵列中的数据。在两种情况下,Data matrix 0,3 =之后都没有输出。我能够使用printf的解决方法,所以我知道数据正在分配正确,但我想尽可能使用cout打印它。

+0

是否强制转换为int类型的工作? – Anthony

+0

是的,但我希望能够看到它在十六进制。我试图将它转换为无符号字符,但没有成功。 – charon00

+2

顶部的答案[这里给出](http://stackoverflow.com/questions/673240/how-do-i-print-an-unsigned-char-as-hex-in-c-using-ostream)在我的作品平台'cl_uchar'。 – James

回答

1

简单

cout << "Data matrix 0,3 = " << hex << static_cast<unsigned int>(clMatrixPerm->data_matrix->elements[4]) << endl;