ladybird/Editor/FileReader.cpp

41 lines
724 B
C++
Raw Normal View History

#include "FileReader.h"
FileReader::FileReader(const std::string& path)
: m_path(path)
{
m_file = fopen(path.c_str(), "r");
}
FileReader::~FileReader()
{
if (m_file)
fclose(m_file);
m_file = nullptr;
}
bool FileReader::can_read() const
{
return m_file && !feof(m_file);
}
std::string FileReader::read_line()
{
if (!m_file) {
2018-12-04 01:41:14 +01:00
fprintf(stderr, "Error: FileReader::read_line() called on invalid FileReader for '%s'\n", m_path.c_str());
return std::string();
}
std::string line;
while (can_read()) {
int ch = fgetc(m_file);
if (ch == EOF)
break;
if (ch == '\n')
break;
line += ch;
}
return line;
}