Scrivere buffer in un file di testo

di il
8 risposte

Scrivere buffer in un file di testo

Salve, è poco che programmo, dovrei scrivere un buffer in un file di testo, in internet ho trovato questo..
FILE* file = fopen( "myfile.bin", "wb" );
fwrite( array, 1, 100, file );


però non capisco cosa sia la dicitura wb...poi inoltre quessto codice mi scriverebbe il buffer in un file binario e non di testo..grazie

8 Risposte

  • Re: Scrivere buffer in un file di testo

    vale88 ha scritto:


    Salve, è poco che programmo, dovrei scrivere un buffer in un file di testo, in internet ho trovato questo..
    FILE* file = fopen( "myfile.bin", "wb" );
    fwrite( array, 1, 100, file );


    però non capisco cosa sia la dicitura wb...poi inoltre quessto codice mi scriverebbe il buffer in un file binario e non di testo..grazie
    Ciao Vale88,
    prima di tutto non mi è chiaro se vuoi scrivere un file di testo o un file binario. Nel caso tu voglia scrivere in binario è corretto il codice che hai scritto. Il parametro "wb" indica la modalità con cui il file viene creato:
    w --> write
    b --> binario

    Attenzione che tale modalità crea un file per la scrittura binaria, ad ogni esecuzione il file verra distrutto e ricreato. Ne caso tu voglia poter scrivere in appe devi aggiungere un "+". In tal caso il parametro che indica la modalità di creazione del file sarà "wb+".


    Nel caso tu voglia invece scrive un file testuale non devi usare la fwrite, secondo il seguente approccio:

    File* fp = fopen("myfile.txt", "w");
    fprint(fp, riga1);
    ....
    fprint(fp,rigan);

    ricordati, in tutti i casi, appena terminate e operazioni sul file di provvedere a effettuare la chiamata:
    fclose(fp). Anche in questo caso l'aggiunta di "+" indica che il file, se già esiste, deve essere usato in append.

    Spero di esserti stato di aiuto.

    Studia la libreria sdtio.

    Saluti
  • Re: Scrivere buffer in un file di testo

    Sìi vorrei scrivere un file testuale..una domanda, perchè devo scrivere riga riga..cosa si intende per riga1 riga2...nel caso di file binario l'array sarebbe il mio buffer, ma nel tuo caso non capisco..
  • Re: Scrivere buffer in un file di testo

    deckard ha scritto:


    vale88 ha scritto:


    Salve, è poco che programmo, dovrei scrivere un buffer in un file di testo, in internet ho trovato questo..
    FILE* file = fopen( "myfile.bin", "wb" );
    fwrite( array, 1, 100, file );


    però non capisco cosa sia la dicitura wb...poi inoltre quessto codice mi scriverebbe il buffer in un file binario e non di testo..grazie
    Ciao Vale88,
    prima di tutto non mi è chiaro se vuoi scrivere un file di testo o un file binario. Nel caso tu voglia scrivere in binario è corretto il codice che hai scritto. Il parametro "wb" indica la modalità con cui il file viene creato:
    w --> write
    b --> binario

    Attenzione che tale modalità crea un file per la scrittura binaria, ad ogni esecuzione il file verra distrutto e ricreato. Ne caso tu voglia poter scrivere in appe devi aggiungere un "+". In tal caso il parametro che indica la modalità di creazione del file sarà "wb+".


    Nel caso tu voglia invece scrive un file testuale non devi usare la fwrite, secondo il seguente approccio:

    File* fp = fopen("myfile.txt", "w");
    fprint(fp, riga1);
    ....
    fprint(fp,rigan);

    ricordati, in tutti i casi, appena terminate e operazioni sul file di provvedere a effettuare la chiamata:
    fclose(fp). Anche in questo caso l'aggiunta di "+" indica che il file, se già esiste, deve essere usato in append.

    Spero di esserti stato di aiuto.

    Studia la libreria sdtio.

    Saluti
    t'ho risposto sotto..
  • Re: Scrivere buffer in un file di testo

    Ciao Vale88,

    forse non avevo ben inteso il tuo scopo.
    Probabilmente sei in una situazione del genere:
    
       char a[2][10] = {{'P','i','p','p','o','\n'},{'P','l','u','t','o','\n','\0'}};
    
        FILE* file = fopen( "test.bin", "w" );
        fwrite(a, sizeof(a), 1, file );
        fclose(file);
    
    Dove a è il tuo buffer d'ingresso…
  • Re: Scrivere buffer in un file di testo

    deckard ha scritto:


    Ciao Vale88,

    forse non avevo ben inteso il tuo scopo.
    Probabilmente sei in una situazione del genere:
    
       char a[2][10] = {{'P','i','p','p','o','\n'},{'P','l','u','t','o','\n','\0'}};
    
        FILE* file = fopen( "test.bin", "w" );
        fwrite(a, sizeof(a), 1, file );
        fclose(file);
    
    Dove a è il tuo buffer d'ingresso…
    sì..quindi dovrei scrivere per salvare in un file di testo...
    char a[2][10] = {{'P','i','p','p','o','\n'},{'P','l','u','t','o','\n','\0'}};

    FILE* file = fopen( "test.txt", "w" );
    fwrite(a, sizeof(a), 1, file );
    fclose(file);
    giusto così..
    premetto che non conosco le dimensioni del mio buffer..quindi potrei scrivere char a[]..
  • Re: Scrivere buffer in un file di testo

    La mia è una mera semplificazione per semplificare il contesto. È evidente che prima in ingresso avrai letto blocchi di cui misurerai la dimensione.
  • Re: Scrivere buffer in un file di testo

    deckard ha scritto:


    La mia è una mera semplificazione per semplificare il contesto. È evidente che prima in ingresso avrai letto blocchi di cui misurerai la dimensione.
    sì sì certo...però comunque va usata la funzione fwrite scritta in quel modo...giusto?
  • Re: Scrivere buffer in un file di testo

    Sì esatto!
Devi accedere o registrarti per scrivere nel forum
8 risposte