How do you get how many bytes were read with the ifstream::read function?
Tell is saying the file is 10 bytes and windows says it is 10 bytes too but there are only 8 bytes in the file so when I read it, it is only reading the 8 bytes so I end up with too large of a buffer.
You can find out by calling gcount()
on a stream immediately after you read.
ifs.read(buf, sizeof buf);
std::streamsize bytes = ifs.gcount();
There is a function called readsome(...)
that does what you want:
streamsize readsome ( char* s, streamsize n );
Return Value The number of characters extracted.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.