Loading...
Другие языки | Нужна помощь с С++
Все салам
Кто может помочь с С++. Надо облегчить данный код

#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <iterator>
#include <algorithm>

int main()
{
std::fstream fs{ "text.txt", std::ios::in }; // открывем файл
std::vector<std::string> text; // тут будут храниться строки из файла
for(std::string line; std::getline(fs,line); text.push_back(std::move(line))); // построчно читаем файл в вектор text
fs.close(); // закрываем файл
fs.clear(); // сбрасывем флаги

size_t K{}; // количество удаляемых строк
std::cout << "K = ";
std::cin >> K;
if (K > text.size()) return -1; // если К больше чем строк в файле выходим из программы
fs.open("text.txt", std::ios::trunc | std::ios::out); // переоткрываем файл для записи, удаляя содержимое
std::copy(text.begin(), text.end() - K, std::ostream_iterator<std::string>{fs, "n"}); // копируем строки из вектора text в файл с первой по ту что количество строк - К включительно
}

________
посл. ред. 18.05.2021 в 15:50; всего 1 раз(а); by F11
F11, а чем этот код тяжелый ? Он не на 2 тома.
Цикл там нафиг не нужен. Почитай внимательно как cpp работает с чтением файлов. Почти одинаково как и php. Читай файл, добавляй все строки в массив, потом из массива удаляй нужные и собирай уже нужные строки в массив. Если нужно, перезаписывай файл.
Онлайн: 2
Время:
Gen. 0.0632
(c) ByMAS.RU 2010-2025