让我们说比如说我将一些数据保存到这样的字符串流中:
char byte = 'A';
stream.write(reinterpret_cast<char*>(&byte), sizeof(char));
int aInt = 252;
stream.write(reinterpret_cast<char*>(&aInt), sizeof(int));
然后将流保存到文件中。
是否可以在某个位置获取缓冲区的地址,例如:
char* byte = reinterpret_cast<char*>(&file.seekg(0));
int* theInt = reinterpret_cast<int*>(&file.seekg(1));
我不想制作任何副本,因此我无法使用读取功能。因此,不是复制我想要获取seekg指向缓冲区内的位置的地址,而是使用内置类型指向缓冲区内的数据。
我可以通过将文件的内容插入到字符串流中并使用.str()函数来解决这个问题:
std::string buffer = stream.str();
char* byte = reinterpret_cast<char*>(&buffer[0]); // first byte is a char
int* theInt = reinterpret_cast<int*>(&buffer[1]); //next 1-5 bytes will be an int
但我想避免从文件流复制到另一个流。
任何帮助都将不胜感激。