Tôi thường sử dụng stringstream
để ghi vào chuỗi trong bộ nhớ. Có cách nào để ghi vào một bộ đệm char trong chế độ nhị phân? Xét đoạn mã sau:Có luồng bộ nhớ nhị phân nào trong C++
stringstream s;
s << 1 << 2 << 3;
const char* ch = s.str().c_str();
Bộ nhớ tại ch
sẽ trông như thế này: 0x313233 - các mã ASCII của ký tự 1, 2 và 3. Tôi đang tìm kiếm một cách để viết các giá trị nhị phân thân. Đó là, tôi muốn 0x010203 trong bộ nhớ. Vấn đề là tôi muốn có thể viết một hàm
void f(ostream& os)
{
os << 1 << 2 << 3;
}
Và quyết định bên ngoài loại luồng nào sẽ sử dụng. Một cái gì đó như thế này:
mycharstream c;
c << 1 << 2 << 3; // c.data == 0x313233;
mybinstream b;
b << 1 << 2 << 3; // b.data == 0x010203;
Bất kỳ ý tưởng nào?
Đó là hex, không phải nhị phân. Tại sao bạn không thể viết 0x01, 0x02, v.v., mặc dù ... đó là những ký tự ASCII thực tế. – jrockway
Ông muốn nội dung của bộ nhớ (byte thực tế) là 0x010203 (66051 thập phân), không phải là chuỗi "0x010203". – KeithB
Tôi đã sửa đổi câu hỏi. Hy vọng nó rõ ràng hơn bây giờ. – FireAphis