Copia di file [C]

valentina921
Salve a tutti,
sto scrivendo un programma in C e ho bisogno di copiare il contenuto di un file dentro un altro file; ho provato con
system("cat file1 > file2") ma quando il programma esegue e arriva là mi dice No such file or directory!
Spero che possiate aiutarmi!

Grazie in anticipo

Valentina

Risposte
nessuno.nobody
Non ti interessa minimamente la portabilità?
Se si, allora usa pure la chiamata a system() con cat all'interno; specifica il path assoluto magari

apatriarca
La copia di un file è una operazione abbastanza semplice. E' infatti sufficiente aprire i due file in modalità binaria (uno in scrittura e l'altro in lettura) e poi fare un ciclo in cui leggi il contenuto di uno e lo scrivi nell'altro. Non è insomma necessario fare ricorso a system, precludendosi così la possibilità di portare il codice su altri sistemi.

valentina921
Ho fatto anche questo:

for (j=0; j<n; j++) {
                
                fscanf(Fp, “%lf   %lf”, &c, &d);
                
                fprintf(Fp2, “%f   %f\n”, c, d);
            }


era questo che intendevi, apatriarca? se sì, facendo così mi escono una sfilza di errori orribili che non sono riuscita a mandare via in alcun modo!! :(

apatriarca
Usa fread e fwrite ed assicurati di aver aperto i file in modalità binaria.

valentina921
Ma perché vanno aperti in modalità binaria? Perché non va bene aprire semplicemente (es. in modalità scrittura) con
Fp = fopen("file.dat","w"); ?

apatriarca
Perché la modalità di scrittura testuale converte alcuni caratteri quando legge e scrive nel file.

valentina921
va bene. proverò ad aprire in forma binaria e vi farò sapere, intanto grazie!

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.