Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Wyświetlanie zawartości pliku w C

kokodyn 06 Mar 2017 13:09 630 8
  • #1 06 Mar 2017 13:09
    kokodyn
    Poziom 10  

    Z góry dziękuje za wszelką okazaną pomoc, czy mógłby ktoś proszę sprawdzić ten kod?
    Program ma za zadanie dopisywać na koniec plik_doc kolejne podane plik_zro.
    Ta część działa poprawnie, bo jak otwieram plik_zro w Edytorze Tekstu to widzę te dopisane linijki z innych plików.
    Mam tylko problem z wyświetlaniem pod koniec zawartości plik_doc. Nie wypisuje zawartości tego pliku.
    Problematyczna linia kodu:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Cały kod:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    0 8
  • Pomocny post
    #2 06 Mar 2017 18:06
    dedito
    Poziom 39  

    Bo masz go otwarty w trybie append, zmień sobie na a+.
    http://cpp0x.pl/dokumentacja/standard-C/fopen/446

    Cytat:
    "a" Otwiera istniejący plik w trybie do zapisu. Jeżeli plik nie istnieje to zostanie on utworzony. Wszelkie nowe dane są dopisywane zawsze na końcu pliku. Wywołania funkcji » standard C ♦ fseek, » standard C ♦ fsetpos oraz » standard C ♦ rewind w tym trybie są ignorowane. Możliwe jest dopisywanie danych do pliku.

    "a+" Otwiera istniejący plik w trybie do odczytu i zapisu. Jeżeli plik nie istnieje to zostanie on utworzony. Wszelkie nowe dane są dopisywane zawsze na końcu pliku.
    Możliwe jest dopisywanie na końcu pliku oraz odczytywane dowolnego fragmentu pliku.

    0
  • #3 07 Mar 2017 09:49
    kokodyn
    Poziom 10  

    Dziękuje bardzo za skuteczną podpowiedź. Teraz program wyświetla dane poprawnie. Mam jeszcze tylko jedno pytanie dlaczego zawartość kolejnych plików dopisywana jest do plik_doc wiersz po wierszu a nie po prostu na koniec pliku?
    Czy odpowiada za to funkcja fwrite?

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0
  • #5 07 Mar 2017 10:15
    kokodyn
    Poziom 10  

    Obecnie zawartość dopisywana jest następująco:
    Pierwszy wiersz
    Drugi wiersz
    Trzeci wiersz

    Czyli zawartość kolejnych plik_zro jest zapisywana każdorazowo w nowym wierszu.

    Co zrobić żeby zawartość była dopisywana po prostu na koniec pliku?Czyli następujący sposób:
    Pierwszy wierszDrugi wierszTrzeci wiersz

    0
  • #7 07 Mar 2017 21:54
    kokodyn
    Poziom 10  

    Sprawdzałem i plik_zro nie ma na końcu znaku nowej linii, więc powód musi być inny.

    0
  • #9 10 Mar 2017 12:07
    kokodyn
    Poziom 10  

    Sprawdź po prostu proszę zamieszczony kod na dwóch przykładowych plikach.

    0