spo/simulator_SIC_XE/src/string_reader.cpp
2025-11-17 13:07:24 +01:00

33 lines
871 B
C++

#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;
}
std::string StringReader::readLine() {
std::string s;
if (!std::getline(in, s)) return std::string();
return s;
}