Announcement

Collapse
No announcement yet.

Dateien

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Dateien

    Hallo,

    Ich habe das folgende Problem . Ich wollte aus einer Datei Daten einlesen und diese dann gleichzeitig
    In einer anderen Datei abspeichern . Dazu habe ich folgenden Code entwickelt , der zeilenweise einliest
    Und gleichzeitig zeilenweise in eine andere Datei reinschreibt . Das Problem dabei ist der Inhalt der
    Neu erstellten Datei (Beispiel):

    HALLOHALLOHALLOHALLOHALLOHALLOHA
    HALLOHALLOHALLOHAL
    HALLOHALLOHALLOHALLOHALLOHALLOHALLOHALLOH
    HALLOHALLOHALLOHALLOHALLOHALLOHALLOHALLOH

    Im Vergleich dazu der Inhalt der ursprünglichenen Datei:

    HALLOHALLOHALLOHALLOHALLOHALLOHA
    HALLOHALLOHALLOHAL
    HALLOHALLOHALLOHALLOHALLOHALLOHALLOHALLOH

    Die letzte Zeile der alten Datei wird also in der neuen Datei zweimal übernommen . Das verstehe ich
    Nicht , beide Dateien sollen ja den gleichen Inhalt haben , und nichts doppelt .

    Mein Code:

    #include "string.h"
    #include "stdio.h"

    int main(void)
    {
    FILE *fp1, *fp2; char zeile[80]; char *c;

    char datei[40]="Text.txt";
    char datei2[40]="Text.txt.crypt";

    fp1= fopen(datei,"r");
    fp2= fopen(datei2,"w");

    do{
    c=fgets(zeile,80,fp1);
    fputs(zeile,fp2);

    if (c!=NULL) printf("%s",zeile);

    }while(c!=NULL);

    fclose(fp1);
    fclose(fp2);

    return 0;
    }

    Ich hoffe ihr könnt mir weiterhelfen , komme selber einfach nicht mehr weiter.

    Bis dann

  • #2
    Ich nimm für solche Sachen keine do-while-Schleife, sonder eine while-Schleife, an derartige Probleme kann ich mich nicht erinnern:

    <pre>
    while(fgets(zeile,80,fp1) != NULL)
    {
    fputs(zeile,fp2);
    }
    </pre>

    Wenn es so nicht auf Anhieb besser ist, wäre eine Analyse der Bildschirmausgaben ( if (c!=NULL) printf("%s",zeile); ) interessant.

    Gruß - Günthe
    Günther

    Comment

    Working...
    X