Chcę przepisać zawartość jednego pliku do drugiego.
Myślałem, żeby zrobić to w pętli linijka po linijce: pobieram linijke z pliku1 do zmiennej, zmienna zapisuje do pliku2. Ten sposób jest dobry czy można to zrobić szybciej?
Chcę przepisać zawartość jednego pliku do drugiego.
Myślałem, żeby zrobić to w pętli linijka po linijce: pobieram linijke z pliku1 do zmiennej, zmienna zapisuje do pliku2. Ten sposób jest dobry czy można to zrobić szybciej?
Linijka po linijce w C? Chciałbym zobaczyć jak to zrobisz ;] Ja bym jednak zaalokował jakiś bufor na kilka MB i kopiował po takich kawałkach.
fscanf(plik1,"%d",pom);
fprintf(plik2,"%d",pom);
Zapomniałem wspomnieć, że chodzi o plik tekstowy i nie rozumiem co do mnie napisałeś.
o_O No teraz to czytasz liczba po liczbie, a nie linijka po linijce. Co wiecej, Pana Tadeusza tak nie skopiujesz. Czym u ciebie jest "pom"? Buforem o którym pisałem własnie. Tylko pewnie takim na kilka bajtów. Zrób taki na znacznie więcej i baw sie http://www.cplusplus.com/reference/cstdio/fread/ i http://www.cplusplus.com/reference/cstdio/fwrite
No jak zwykle podaje za mało informacji ;/
jedna liczba w linijce wiec dla mnie to bylo linijka po linijce ;d
zmienna typu int, liczby w pliku int, w programie usuwam cos z jednego pliku wiec zapisuje to co nie usuwam zapisuje do pliku tymczasowego i z pliku tymczasowego przepisuje do pliku glownego. Nie wiem czy to dobre rozwiazanie, ale innego nie wymyśliłem.
W C
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main () {
char filename[256] = ""; // source file name
char file2name[256] = ""; // destination file name
FILE *file;
FILE *write;
char line[256];
char linec[256];
printf("enter a filename: ");
scanf("%s", &filename); // source file name
printf("enter a destination filename: ");
scanf("%s", &file2name // destination file name
file = fopen (filename, "r"); // read
write = fopen (file2name, "w+" ); // write
if (file != NULL) {
while ( fgets ( line, sizeof line, file ) != NULL ) { /* read a line */
fputs (line, stdout); /* write the line */
strcpy(linec, line);
fprintf (write , linec);
}
fclose (write);
fclose ( file );
}
else {
perror (filename); // filename not opened
}
return 0;
}
W C++
#include <string>
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
int main() {
ifstream i ("plik1.txt");
ofstream o ("plik2.txt");
string tekst;
for(int j=0; j<2; ++j)i >> tekst;//zapis tekstu z plik1 do zmiennej tekst
o << tekst; //zapis ze zmiennej tekst do plik2
i.close();
o.close();
system("pause");
return 0;
}
fscanf(plik1,"%d",&pom);
fprintf(plik2,"%d\n",pom);