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