PDA

Visualizza la versione completa : [C] Copiare un file in un altro file


Cyber-X91!
19-02-2013, 17:11
Come faccio per copiare il contenuto di un file in un altro file in C? Devo copiare riga per riga?
Ho provato cosi:


int main(){
char testo[100];
FILE *fp,*fp1;
if (((fp = fopen("testo.txt", "r")) == NULL) && (fp1 = fopen("testout.txt", "w") )== NULL){
printf("File could not be opened");
}
else {

fread(testo, 100, 1, fp);
fwrite(testo, 100, 1 ,fp1);
fclose(fp);
fclose(fp1);
system("PAUSE");


}}

Ho fatto lo stesso con fprintf e fscanf ed ho provato anche con fgets ed fputs ma il file da riempire rimane sempre vuoto... Dove sbaglio? La variabile "testo" viene caricata in quanto visualizzandola a video mi da la stringa del testo ma nel file non scrive nulla...

Cyber-X91!
19-02-2013, 17:37
Ragazzi ho risolto... Ho eliminato l'if e adesso copia... Probabilmente non mi apriva il secondo file quello puntato da fp1...

Alex'87
19-02-2013, 18:00
Spezza l'if, cos capisci dove si rompe...



if ((fp = fopen("testo.txt", "r")) == NULL) {
// errore file sorgente
}

if ((fp1 = fopen("testout.txt", "w")) == NULL) {
// errore file destinazione
}

Inoltre dai dei nomi migliori alle variabili, fp e fp1 non vogliono dire nulla, non meglio qualcosa del tipo "sourceFile" e "destinationFile"?

Cyber-X91!
19-02-2013, 18:16
si hai ragione per le variabili... comunque ho un altro problema se un esercizio mi chiede di trasformare le lettere minuscole in maiuscole dopo il punto in un testo come devo fare? Cio io ho ad esempio due frasi in un file:

Ciao. dove vai?
"fate luogo voi", rispose Lodovico. "la diritta e` mia".

Nella prima fase c il punto e lo spazio mentre nella seconda dopo Lodovico ce il punto ma ci sono anche lo spazio e le virgolette... come dico al programma che mi deve trasformare la l in L se dopo il punto ce uno spazio e delle virgolette e la d in D se ce lo spazio?

MItaly
19-02-2013, 18:44
Originariamente inviato da Cyber-X91!
comunque ho un altro problema
altro problema = apri un'altra discussione

Tra l'altro, nel titolo della discussione va indicato il linguaggio di riferimento come "tag", qui correggo io, nei prossimi thread ricordatene.
:ciauz:

Cyber-X91!
19-02-2013, 18:52
Ook MItaly grazie:))

Loading