2
如何有效地将数据从一个数据流插入另一个不同类型的数据流?在不同类型的数据流之间复制数据
我曾尝试以下:
#include <iostream>
#include <sstream>
using namespace std;
int main(void)
{
basic_stringstream<unsigned short> uss;
stringstream cs;
unsigned short val = 0xffff;
uss.write(&val, 1); // write value to 'uss'
uss.read(&val, 1); // read data from 'uss' into 'val'
cout << hex << val << endl; // gives 0xffff
cs << uss.rdbuf(); // copy 'uss' contents into 'cs'
cs.read((char*) &val, 2); // read data from 'cs' into 'val'
cout << hex << val << endl; // gives 0x3030 ?
return 0;
}
http://stackoverflow.com/questions/5497284/is-it-ok-to-use-iostreams-with-int-as-character-type – 2014-08-31 23:45:15
'cs << uss.rdbuf();'This line调用'operator <<(void *)',并在十六进制中打印指针,就像使用'printf(“%p”)''一样。我假设'rdbuf()'指针的地址是以十六进制呈现的形式'00XXXXXX',因此是0x3030(又名“00”)。 – 2014-08-31 23:54:33