• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Poruszanie sie po pliku do zapisu.

VPS Starter Arubacloud
0 głosów
173 wizyt
pytanie zadane 28 kwietnia 2016 w C i C++ przez Sinnley Stary wyjadacz (12,810 p.)
Witam, potrzebuje miec możliwosc poruszania się po pliku do zapisu.

Robie maly program ktory do pliku do zapisu przepisuje linijki z pliku do odczytu, ale z roznymi dodatkami, np do kazdej linijki dodaje jakies slowo. Mam jednak problem z tym, ze gdy chce uzyc funkcji jeszcze raz to linijki pojawiaja sie pod zapisanymi wczesniej, a chcialbym dolaczyc je do poprzednich przykladowo.

Plik do oczytu:

Damian

Maciek

Adam

Uzycie funkcji pierwszy raz, plik do zapisu

Damian to

Maciek to

Adam to

Uzycie funkcji drugi raz, plik do zapisu

Damian to programista

Maciek to programista

Adam to programista

---

W tym celu potrzebowalbym wiec wrocic na poczatek pliku do zapisu, a nastepnie

1. Przejsc do konca zapisanej lini

2. Dopisac cos

3. Zejsc linijke nizej

I tak az do konca pliku. Funkcja seekg() dziala tylko w trybie do odczytu, no i nie pozwala mi tak po prostu "zejsc linijke nizej", bo podajemy tylko numer znaku. Czy sa jakies funkcje pozwalajace poruszac sie po "koordynatach", w stylu goto(linijka, nr_znaku), oraz znajdujaca numer konca lini, czy zwracajaca boola jesli na taki koniec natrafi?

Jakich funkcji powinienem uzyc w tym miejscu?

4 odpowiedzi

+1 głos
odpowiedź 28 kwietnia 2016 przez Patrycjerz Mędrzec (192,320 p.)
Niestety, możesz jedynie kontrolować pozycję wskaźnika - nic więcej. Jeśli chcesz uzupełnić plik o nowe dane, to lepiej pobierz stare dane, zmodyfikuj je i znowu zapisz.
+1 głos
odpowiedź 28 kwietnia 2016 przez pewolt Mądrala (5,790 p.)

To troche jak tworzenie języka skryptowego: wczytujesz, dzielisz, analizujesz, wykonujesz i łączysz wyszsto w całość

Nie mogę podać Ci tu gotowego kodu wiec odeśle Cię do kursu Hiperłącze

Mam nadzieje że pomogłem.

+1 głos
odpowiedź 29 kwietnia 2016 przez bartolinciu Dyskutant (7,580 p.)

Kolega Patrycjerz ma rację, ale nie do końca. Stosując funkcje z c można zapisuwać w dowolnym miejscu pliku, ale wiąże się to z danych znajdujących się w danym miejscu. Jeśli nie chcesz zaśmiecać dysku dodatkowymi plikami to możesz zastanowić się nad plikami tymczasowymi. Możesz do tego wykożystać funkcje tmpnam():http://www.cplusplus.com/reference/cstdio/tmpnam/ i tmpfile():http://www.cplusplus.com/reference/cstdio/tmpfile/

+1 głos
odpowiedź 29 kwietnia 2016 przez niezalogowany
Zrobiłbym coś w stylu pobrania tych danych z pliku, sprawdzenie ich długości, wypisania spacji + twojego stringa i wtedy znowu zapisać ale już w czystym pliku.

Podobne pytania

0 głosów
2 odpowiedzi 1,026 wizyt
pytanie zadane 13 września 2016 w C i C++ przez prownnie Początkujący (280 p.)
0 głosów
1 odpowiedź 171 wizyt
pytanie zadane 31 maja 2022 w C# przez Routa Nowicjusz (160 p.)

92,832 zapytań

141,776 odpowiedzi

320,824 komentarzy

62,163 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...