У меня небольшая проблема с чтением данных из файла. Я хочу иметь возможность читать wstring, а также кусок необработанных данных произвольного размера (размер в байтах).
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 *'
Возможно, я использую неправильные потоки или что-то в этом роде. По сути, я хочу прочитать wstring, за которым следует размер данных (который может быть любым количеством байтов), за которым следует столько байтов данных компонента. Очевидно, я не могу читать char, потому что шаблон предполагает wchar_t.
Я могу читать wchar_t, но тогда я должен убедиться, что данные хранятся в соответствии с sizeof(wchar_t). В противном случае я могу испортить поток. Сценарий был бы, когда данные составляют 15 байтов. Мне пришлось бы прочитать 16 байтов, затем замаскировать нежелательный байт, искать поток со смещением 15 байт (если возможно с шаблоном wchar_t?), Чтобы иметь возможность прочитать следующий фрагмент данных.
Очевидно, что должен быть более приятный способ добиться того, что я пытаюсь сделать.