Wczytanie kokretnej lini podanej przez usera

0

Witam!

Mam problem. Musze napisać program w c++ w borlandzie który bedzie edytował plik. Problem w tym że mają być edytowane 2 konkretne linie które podaje użytkownik. Czyli jak plik ma 10lini i użytkownik chce edytować 5linie to zmienia mu sie tylko 5linia a reszta pozostaje bez zmian.

Jak mam to zrobić. Męcze się z tym już od dobrych kilku godzin a potrzebuje to na dzisiaj na 19;/

0

Pliki tekstowe mają swoje zalety i wady. Zaletą jest to, że można je edytować "ręczie". Wadą jest to, że są o dostępie sekwencyjnym, czyli aby odczytać wiersz [5], trzeba odczytać wiersze [1..4]. Problem ten możesz obejść na dwa sposoby:

1). User podaje wiersz do edycji: np. 5. Musisz więc odczytać wiersze [1..4] i zapisać do pliku tymczasowego, odczytać wiersz [5] i nie zapisywać go nigdzie,, poprosic usera o wprowadzenie wiersza nr 5, zapisać ten wiersz do pliku temp, i znowu w pętli czytać wiersze od [6..EOF] i zapisywać je do pliku temp. Na końcu zmienić nazwę pliku temp na plik źródłowy.

2). Opcja łatwiejsza (ale dla niezadużych plików). Wczytać plik do klasy TStringList za pomoca LoadFromFile, dokonać modyfikcaji wiersza [5], zapisać plik za pomocą SaveToFile.

0
#include <iostream>
#include <string>
#include <fstream>
using namespace std;

int main(int argc, char* argv[])
{
   fstream plik(argv[1]);
   string linia;
   int numer = atoi(argv[2]);
   while(!plik.eof())
   {
      getline(plik, linia);
      if(--numer == 0)
      {
         cout << linia;
         return 0;
      }
   }
   cout << "Brak tylu linii";
	return 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1