Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Copiare un file in un altro file

    Come faccio per copiare il contenuto di un file in un altro file in C? Devo copiare riga per riga?
    Ho provato cosi:

    codice:
    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...

  2. #2
    Ragazzi ho risolto... Ho eliminato l'if e adesso copia... Probabilmente non mi apriva il secondo file quello puntato da fp1...

  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Spezza l'if, così capisci dove si rompe...

    codice:
    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"?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  4. #4
    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?

  5. #5

    Moderazione

    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.
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Ook MItaly grazie)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.