Как делают Вы добираетесь, сколько байтов было считано с ifstream:: считать функцию?
Скажите говорит, что файл составляет 10 байтов, и окна говорит, что это - 10 байтов также, но существует только 8 байтов в файле поэтому, когда я считал его, это только читает 8 байтов, таким образом, я заканчиваю со слишком большим из буфера.
Вы можете узнать это, вызвав gcount()
в потоке сразу после прочтения.
ifs.read(buf, sizeof buf);
std::streamsize bytes = ifs.gcount();
Есть функция, вызываемая readsome(...)
, которая делает то, что вы хотите:
streamsize readsome ( char* s, streamsize n );
Return Value Количество символов извлечено.