2012-04-03 8 views
-4

Ich wollte eine Datei von einem Ort zu einem anderen Ort mit einem c-Programm kopieren, kann mir jemand einen Hinweis geben, wie kann ich das tun?C Programm zum Kopieren einer Datei an einen Ort

Ich bin Begginer zu diesem und ich habe keine Idee, ich verwende Codeblocks für kompilieren und schreiben von Programmen.

// Please help me out... I have only included some files such as: 
#include <stdio.h> 
#include <stdlib.h> 
#include <conio.h> 
#include <dir.h> 
#include <dos.h> 
#include <io.h> 
int main() 
{ 

} 

Hilf mir aus.

+0

schließlich könnten Sie den Unix 'cp'-Befehl irgendwie aufrufen ... – evotopid

+1

Möchten Sie Systemaufrufe verwenden? Wenn nicht, können Sie die Datei, die Sie kopieren möchten, öffnen, eine neue Datei im gewünschten Verzeichnis mit dem gleichen Namen erstellen, alle Daten aus der ersten Datei lesen und sie in die zweite Datei schreiben. Diese http://www.cplusplus.com/reference/clibrary/cstdio/FILE/ zeigt, wie man mit 'stdout' so viel macht, dass man in die andere Datei wechseln muss. – twain249

+0

Vielleicht ist es unter Windows (dos.h). Wenn Sie noch nicht mit Windows 95 arbeiten, speichern Sie die Datei dos.h und fügen Sie windows.h hinzu. Rufen Sie die copyfile() API auf. –

Antwort

1

Die tragbare Art und Weise:

  1. die Quelldatei zum Lesen öffnen
  2. die Zieldatei lesen von der Quelle
  3. erstellen
  4. Schreib zum Ziel

Die Plattform- spezifischer Weg:

  • finden Sie heraus, wie Sie die integrierte Kopierfunktion Ihrer Plattform aufrufen (z. B. Führen Sie /bin/cp auf * NIX)
1

Nun können Sie jede Route folgen. Sie haben uns nicht gesagt, ob Sie beispielsweise auf Standard-C beschränkt sind. Und in der Tat enthalten Sie eine Kopfzeile, die vorschlägt, dass Sie auf Windows sind. Für diese Art von Jobs verwenden Sie die Windows-API in diesem Fall CopyFile

1
#include <stdio.h> 

int main(int argc, char **argv) 
{ 
    char buffer[1024]; 
    size_t num; 

    while ((num = fread(buffer, 1, sizeof(buffer), stdin)) > 0) 
     fwrite(buffer, 1, num, stdout); 
} 

Jetzt können Sie eine Datei kopieren, indem Sie einfach das Programm wie folgt aufrufen:

foo < input> Ausgabe

Alternativ Sie können die Eingabe- und Ausgabedateien in die Befehlszeile einfügen und sie mit fopen() öffnen.

1

Sie müssen zwei Dateien fopen() eins zum Lesen und eins zum Schreiben, dann erstellen Sie einen Puffer, um die temporären Bytes zu speichern. Dann müssen Sie() aus einer Datei lesen und() auf die andere schreiben. Vergessen Sie nicht, Ihre Dateien zu schließen, wenn Sie fertig sind. Pseudo-Code

Beispiel:

fopen(path, mode); 
char buff[256]; 
//This should be in a loop until EOF: 
{ 
    read(file, buffer, (buffer size)); 
    write(file, buffer, (buffer size)); 
} 
close(file); 

Das ist der Kern der Dinge. Wenn Sie mehr Hilfe benötigen, empfehle ich, Man-Pages zu verwenden, um herauszufinden, wie die Funktionen funktionieren: z. "Mann fopen()".

3

Dateiverarbeitung ist in code :: blocks so wie es ist (fast) woanders.

Erstellen Sie zunächst ein Datei-Stream:

FILE *fp;

Als nächstes öffnen Sie es für das Schreiben ("w") und den vollständigen Pfad geben.

myf= fopen ("c:\\windows\\name.bat", "w");>

Dann mach dein Ding: read()/write(), wie durch drew12 oder fprintf vorgeschlagen() oder was auch immer Ihre Phantasie fängt. Danach schließen Sie es aus:

fclose(*fp);

Ich bin sicher, dass Sie alle diese jeder C Referenz zu bekommen, wie this.

+0

danke für die Idee !! –

Verwandte Themen