It's like readsome isn't even reading. Returns 0 and doesn't read any chars. What is wrong here?
#include <fstream>
#include <iostream>
int main ()
{
std::fstream stream("list.cpp", std::ios::in);
if (stream.good() || !stream.bad() || stream.is_open()) {
std::cout << "Well, stream looks good." << std::endl;
char justOneChar = 'L';
auto ssize = stream.readsome(&justOneChar, 1);
std::cout << ssize << " : " << justOneChar << std::endl;
}
return -1;
}
Output:
Well, stream looks good. 0 : L
1
is the maximum number of characters to read. If the streams internal buffers are empty when you call it, you'll get back zero as a return value.The following quote (with my bold) shows this aspect:
It's basically a way to get as many characters as are available (subject to your specified limit) without having to wait for the stream to provide more.