Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    59

    Copiare il contenuto di un file

    Salve a tutti! Ho un pó di problemi con il C++.
    Devo aprire un file in modalitá lettura(o scrittura) e fino a qua ci sono. Esempio:

    int main()
    {
    char data[200]="Questa è una prova\0";
    FILE *file;
    file = fopen("esempio.txt","w");
    fwrite (data, 1 , sizeof(data), file );

    fclose(file);
    }

    Nel mio caso peró non devo scrivere la sola riga:"Questa é una prova" nel file esempio.txt ma tutto il contenuto di un altro file sempre con estensione txt.

    Successivamente devo aggiungere a questo file il contenuto di un altro file e cosi via fino a formare un output di testo con 5 files.
    '
    Come posso fare?

    Grazieeeeee....

  2. #2
    Preparati un buffer di lettura di dimensioni adeguate (diciamo 4 KB?) e per ogni file di input leggici dentro "a blocchi" il contenuto del file, scrivendolo immediatamente dopo nel file di output. La cosa più semplice sarebbe scrivere una semplice funzione che accetta uno stream di input e uno di output e copia il contenuto dell'uno nell'altro.

    (P.S.: il codice che hai scritto è C, non C++. Intendi usare le funzioni di IO del C o gli stream C++?)
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    59
    Non ho mai programmato in C++. Sto usando Visual C++ 2008 e quindi penso dovrei usare gli stream C++.

    Potrei fare una cosa del genere?

    int main()
    {
    char buffer[400];
    FILE *file;
    file = fopen("prova.txt","r");
    fread (buffer, 1 , sizeof(buffer), file );
    file=fopen("output.txt","w");

    fclose(file);
    }


    (Sicuramente é sbagliato)
    HELP......!!!

    Puoi scrivermi il codice??

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,464

    Moderazione

    Originariamente inviato da Elénú
    Potrei fare una cosa del genere?
    Usa il tag [CODE] per formattare il codice, come da Regolamento.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    59
    Non ho mai programmato in C++. Sto usando Visual C++ 2008 e quindi penso dovrei usare gli stream C++.

    Potrei fare una cosa del genere?


    codice:
    int main()
    char buffer[400];
    FILE *file;
    file = fopen("prova.txt","r");
    fread (buffer, 1 , sizeof(buffer), file );
    file=fopen("output.txt","w");

    fclose(file);



    (Sicuramente é sbagliato)
    HELP......!!!

    Puoi scrivermi il codice??

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    59
    Forse intendevi una cosa del genere?

    codice:
    int main() { 
    fstream f_input, f_output; 
    f_input.open("prova.txt",ios::in); 
    f_output.open("output.txt",ios::out); 
    f_input.close(); 
    f_output.close(); }

  7. #7
    Sì, ora scrivi una funzione che accetti un reference allo stream di input e uno allo stream di output e copi tutto il contenuto dell'uno nell'altro. L'idea è di avere un buffer di dimensione fissata in cui man mano leggi il contenuto del primo file e da cui scrivi nel secondo file.

    Domanda: ma se non hai mai programmato in C++ perché lo vuoi fare in C++? È molto più rapido fare una cosa del genere con uno script della shell...
    Amaro C++, il gusto pieno dell'undefined behavior.

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    59
    Sto lavorando su un progetto che prevede la creazione di un interfaccia grafica giá scritta in C++.
    E' necessario aprire una serie di files con dei parametri riguardanti encoder, modulazioni ecc.. e passarli a questa interfaccia.
    Quindi pensavo che questo fosse il modo migliore.
    Ma mi dici che c'é questo modo piú veloce... In cosa consiste? come posso fare?

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.