implemented rfile reading

This commit is contained in:
zanostro 2025-11-17 12:33:06 +01:00
parent ba18b92116
commit 5d2a0f867c
5 changed files with 107 additions and 0 deletions

View file

@ -0,0 +1,27 @@
#include "string_reader.h"
StringReader::StringReader(const std::string &s)
: in(s)
{}
StringReader::~StringReader() = default;
int StringReader::readByte() {
char c;
if (!in.get(c)) return -1;
return static_cast<unsigned char>(c);
}
bool StringReader::readBytes(uint8_t* buf, size_t len) {
in.read(reinterpret_cast<char*>(buf), static_cast<std::streamsize>(len));
return static_cast<size_t>(in.gcount()) == len;
}
std::string StringReader::readString(size_t len) {
std::string s;
s.resize(len);
in.read(reinterpret_cast<char*>(&s[0]), static_cast<std::streamsize>(len));
std::streamsize got = in.gcount();
if (static_cast<size_t>(got) < len) s.resize(static_cast<size_t>(got));
return s;
}