Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    [C++] scrittura su FILE

    CIao raga sto iniziando a studiare i FILE, e adesso volevo fare un piccolo programma che mi permette di scrivere su un file.
    codice:
    # include <iostream>
    using namespace std;
    
    struct  formato
    {
      string strin;
    };
    
    int main()
    {
    FILE *testo;
    testo = fopen("prova.txt","testo");
    
    //  lettura
    struct formato a;
    scanf("%s",&a.strin);
    
    
    // scrittura   
    fprintf(testo, "%s",a.strin);
    system("PAUSE");    
    }
    ma quando lo eseguo mi dice di fare la segnalazione di errori a Windows.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Hai sbagliato la chiamata della funzione "fopen()"... il secondo argomento deve essere la modalità con la quale vuoi aprire il file (r per lettura, w per la scrittura ecc...)

    Comunque se lavori col C++ forse sarebbe più corretto (e per certi versi più semplice) lavorare con gli stream associati ai file, definiti in fstream, piuttosto che gestire i file come nel linguaggio C.
    every day above ground is a good one

  3. #3
    Ad esempio questo pezzo di programma mi dovrebbe leggere il contenuto del file prova.txt???
    codice:
    #include <iostream>
    #include <fstream.h>
    
    ifstream FlussoDiInput;
    using namespace std;
    
    int main()
    {
       
     FlussoDiInput.open("prova.txt", ios::out);
     system("PAUSE");    
    }

  4. #4
    Utente di HTML.it L'avatar di Pacio88
    Registrato dal
    Sep 2007
    Messaggi
    447
    No così lo stai aprendo in modalità di scrittura...
    Per aprirlo in modalità lettura devi specificare come parametro ios::in.

  5. #5
    Ho scritto così, ma il compilatore mi dice:
    #warning This file includes at least one deprecated or antiquated header.
    codice:
    #include <iostream>
    #include <fstream.h>
    
    ifstream FlussoDiInput;
    //ofstream FlussoDiOutput;
    using namespace std;
    
    int main()
    {
       
     FlussoDiInput.open("prova.txt", ios::in);
     system("PAUSE");    
    }

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Tra l'altro non sarebbe nemmeno accettata la modalità ios:ut essendo lo stream dichiarato "ifstream", cioè strem associato ad un file di input.

    Ti consiglio comunque di dichiarare quello stream localmente al main (e non globalmente) e di utilizzare l'header in stile C++ "fstream", piuttosto che il vecchio header file "fstream.h" stile C.

    Consiglio: quando apri uno stream associato ad un file di input, questo viene automaticamente aperto in modalità di lettura, quindi non ci sarebbe nemmeno bisogno di scrivere "ios::in"... ma magari scrivilo lo stesso così ti ci abitui.

    Edit: il warning ti segnala esattamente il fatto che ti dicevo sull'header file fstream.h... cambialo con fstream.
    every day above ground is a good one

  7. #7
    YuVevon, mettendo la libreria così:
    #include <fstream>
    il compilatore mi da errore

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    "Il compilatore mi da' errore" ... e l'errore qual e'?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    codice:
    #include <iostream>
    #include <fstream>
    using namespace std;
    evidentemente perché dichiari lo stream di input prima dell'istruzione "using namespace std"... ti ho già consigliato di dichiarare quello stream dentro al main, o comunque dopo le tre istruzioni che ti ho scritto sopra se no è ovvio che il compilatore protesta
    every day above ground is a good one

  10. #10
    allora, riepilogando, adesso dichiarando in questo modo mi funziona:
    codice:
    #include <iostream>
    #include <fstream>
    
    using namespace std;
    
    int main()
    {
     ifstream FlussoDiInput;  
     FlussoDiInput.open("prova.txt", ios::in);
     system("PAUSE");    
    }
    Io nel file prova.txt, ci ho scritto una stringa,
    ma quando eseguo il programma non mi esce niente.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.