zapisywanie do pliku, z którego uprzednio czytamy

0

Mam program, który czyta plik tekstowy i wypisuje jego treść na konsolę.
Chciałbym móc zapisać tę treść po pewnych modyfikacjach w miejsce starej treści.
Jak to zrobić?

Gdy otwieram strumień tak:

 FILE* strumien = fopen("plik.txt", "r+");

Zawartość pliku nie ulega zmianie po zapisaniu.

Sprawdzałem, że jeśli otworzę odrębny strumień:

 FILE* strumien2 = fopen("plik2.txt", "w"); 

to zapis następuje poprawnie.

1

Nawet po naszemu znalazlem: http://pl.wikibooks.org/wiki/C/fopen

"w" - otwiera plik do nadpisywania (zamazuje starą treść)

Prawdopodobnie jednak Twoj problem polega na tym, ze wskaznik pliku jest ustawiony na koncu.

I cos malo po naszemu: http://www.cplusplus.com/reference/cstdio/fopen/

For files open for update (those which include a "+" sign), on which both input and output operations are allowed, the stream should be flushed (fflush) or repositioned (fseek, fsetpos, rewind) between either a writing operation followed by a reading operation or a reading operation which did not reach the end-of-file followed by a writing operation.

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