@retr0

Как разбить текстовый файл на строки в c++?

Я хочу разбить текстовый файл на строки, каждая из которых будет содержать n символов. Что бы, допустим, из текста
abababababababababababababab
получилось что-то по типу
abababa \n bababab \n abababa \n bababab
. Предполагается, что количество символов в файле будет кратно количеству символов в строке. В данном случае, текст из 28 символов разбивается на 4 строки по 7 символов в каждой. Каким образом это можно осуществить на C++?
  • Вопрос задан
  • 688 просмотров
Решения вопроса 1
myjcom
@myjcom Куратор тега 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"));
}

Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@tabbols95
Недопрограммист
Циклом считать не вариант? Если известна длина строки.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы