Stream a file line by line with std::getline
C++
#include <fstream>
#include <functional>
#include <string>
bool forEachLine(const std::string& path, const std::function<void(const std::string&)>& fn) {
std::ifstream in(path);
if (!in) return false;
std::string line;
while (std::getline(in, line)) {
if (!line.empty() && line.back() == '\r') line.pop_back();
fn(line);
}
return in.eof();
}