Неправильное использование C++ для чтения файла

Я пытаюсь открыть .lnk файл (ярлык) с помощью C++. Я использую этот код:

FILE* file;
file = _wfopen(file_path, L"r"); // file_path - wide-строка из wchar_t
std::filebuf fb(file);
std::istream in(&fb);
std::ostringstream ss;
ss << in.rdbuf(); // чтение содержимого файла
std::string result = ss.str();
for(int i = 0; i < result.size(); ++i) {
    std::cout << result[i];
}
std::cout << '\n';
fclose(file);

Однако он читает только первые 116 символов (размер файла 654 байта) и потом ничего не делает. А в этих 116 байтах нет ничего полезного, информация о пути, к которому ведет ярлык, находится дальше.

Размер файла - 654 байта

Вот что он выводит: Тут 116 символов

Также C++ утверждает, что размер прочитанной из файла строки - 117.
Насколько я понял, C++ почему-то неправильно определяет конец файла


Ответы (0 шт):