Tôi có một vấn đề nhỏ khi đọc dữ liệu từ tệp. Tôi muốn có thể đọc wstring, cũng như một đoạn dữ liệu thô có kích thước tùy ý (kích thước bằng byte).Làm cách nào để đọc dữ liệu nhị phân từ wfstream?
std::wfstream stream(file.c_str());
std::wstring comType;
stream >> comType;
int comSize;
stream >> comSize;
char *comData = new char[comSize];
memset(comData, 0, comSize);
stream.read(comData, comSize);
//error C2664 : 'std::basic_istream<_Elem,_Traits>::read'
// : cannot convert parameter 1 from 'char *' to 'wchar_t *'
Có lẽ tôi đang sử dụng các luồng sai hoặc một thứ gì đó dọc theo các dòng đó. Về cơ bản, tôi muốn đọc một wstring, kích thước của dữ liệu theo sau (có thể là bất kỳ số byte nào), theo sau là nhiều byte dữ liệu thành phần. Rõ ràng, tôi không thể đọc của char vì mẫu giả định của wchar_t.
Tôi có thể đọc wchar_t's nhưng sau đó tôi phải đảm bảo dữ liệu được lưu trữ theo sự liên kết của sizeof (wchar_t). Nếu không, tôi có thể sẽ làm hỏng luồng. Một kịch bản sẽ là khi dữ liệu là 15 byte. Tôi sẽ phải đọc 16 byte, sau đó mặt nạ byte không mong muốn, tìm kiếm các dòng để 15 byte bù đắp (nếu có thể với wchar_t templated?) Để có thể đọc đoạn dữ liệu tiếp theo.
Rõ ràng, có nên là một cách hay hơn để đạt được những gì tôi đang cố gắng làm.
Chỉ là tôi hay ai đó khác cũng đọc WTFstream? :-) – VVS