Lesen Eingaben aus einer Datei und schreiben in eine andere Datei in den C

Ich versuche zu Lesen, den Inhalt von einer Datei "file.txt" und schreiben Sie jedes Zeichen von dort bis "copy.txt" aber ich bekomme seltsame Zeichen am Ende des "copy.txt" Datei.

Ich versuche zum öffnen und schließen der beiden Dateien, und ändern Sie die Körper der while-Schleife in das Programm so, dass der Charakter nicht mehr auf der standard-Ausgabe (stdout).

#include <stdio.h>
#include <stdlib.h>

int main()
{
  char c;
  FILE *from, *to;

  from = fopen("file.txt", "r");
  if (from == NULL)
  {
    perror("file.txt doesn't exist.");
    exit(1);
  }

  to = fopen("copy.txt", "w");
  if (to == NULL)
    {
      perror("copy.txt doesn't exist.");
      exit(1);
    }
  do
    {
      c = getc(from);
      putc(c, to);
    }
  while(c != EOF);
  fclose(to);
  fclose(from);
  exit(0);
}
Rufen Sie putc() mit der EOF Ergebnis nach getc() zurück EOF.
Auch c sollte ein int, nicht ein char.
Übrigens @JamesR, der Grund für die Verwendung int c und nicht char c ist, dass EOF ist nicht unbedingt darstellbar in einer char.
Sie können ändern Sie die Schleife, um while ((c = getc(from)) != EOF) { putc(c, to); }.
Bitte Einrücken von code konsistent. Schlage vor, Spiegelstrich 4 Leerzeichen nach jeder öffnenden Klammer '{' und un-Einzug vor jeder schließenden Klammer '}'. Verwenden Sie keine Tabulatoren für Einrückungen als jede Textverarbeitung/editor definiert den Tabulator/tab-breiten anders. Verwenden Sie 4 Räume, die sichtbar ist, auch mit variabler Breite Schriftarten.

InformationsquelleAutor JamesR | 2015-10-01

Schreibe einen Kommentar