-3

我正在将字符串(字符序列)发送到 C++ 中的函数,然后该函数将以 char 类型的指针接收它。但是当我增加指针以到达每个字符时,它会在第 19 个字符之后从字符串中消失,并且只是指向我程序中的其他位置。这是我要发送的字符串:

\xe1\x0c\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x06google\x03com\x00\x00\x01\x00\x01

这是我的代码:

char* request_process(char *request)
{
     for (int j = 0; j< 27; j++)
     {
        cout << (request[j] << 0) << "\n";
     }
 .
 .
 .    
 }

在“谷歌”之后它出错了。那么我应该怎么做才能将它作为(二进制)“00000011”然后是“c”?

4

1 回答 1

1

指针几乎肯定不是问题。另一方面,cout在文本模式下打开,并且向以文本模式打开的文件输出一些特别保留(如)以外的非打印字符'\n'是未定义的行为。在实践中,实现可能会让字符通过,但谁知道它们会对输出设备产生什么影响。

于 2012-12-31T13:43:43.417 回答