ababababababababababababababполучилось что-то по типу
abababa \n bababab \n abababa \n bababab. Предполагается, что количество символов в файле будет кратно количеству символов в строке. В данном случае, текст из 28 символов разбивается на 4 строки по 7 символов в каждой. Каким образом это можно осуществить на C++?
Каким образом это можно осуществить на C++?
#include <iostream>
#include <string>
#include <fstream>
#include <algorithm>
#include <iterator>
#include <experimental/iterator>
using namespace std;
template<size_t N>
auto doit = [](const auto& s)
{
string result;
auto p = s.begin();
while(p != s.end())
{
copy_n(p, N, back_inserter(result));
result += '\n';
p += N;
}
result.pop_back();
return result;
};
int main()
{
ifstream in("D:\\in.txt");
ofstream out("D:\\out.txt");
if(!in || !out)
{
return EXIT_FAILURE;
}
transform(istream_iterator<string>(in), {},
ostream_iterator<string>(out), doit<7>);
out.close();
ifstream rin("D:\\out.txt");
copy(istream_iterator<string>(rin), {},
experimental::make_ostream_joiner(cout, "\n"));
}