#include <iostream>
#include <z/all.hpp>
int main() {
const auto filename = execdir() + "/../data/in1.txt";
"Original file contents:"_zs.
writeln(std::cout);
for (auto line : lines(filename)) {
line.writeln(std::cout);
}
auto mutated_lines = lines(filename).map<zstring>([](auto line) {
auto result = line;
result.replace(' ', "˽");
result.replace('\n', "˥\n");
result.replace('\r', "˿");
result.replace('\t', "˾");
return result;
});
"\nMutated file contents:"_zs.writeln(std::cout);
for (auto line : mutated_lines) {
line.writeln(std::cout);
}
return 0;
}
void writeln(std::ostream &stream) const noexcept
Write string data to a stream in its format, appending a newline.
Definition string.hpp:1538
zpath execdir() noexcept
Get the directory path of the running executable.
Definition execdir.hpp:11
core::generator< zstring, fileHandle > lines(const zpath &filename)
Reads the contents of a file line-by-line.