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

    C++ scrivere struct su file

    Ho questa struct:
    codice:
    struct conf 
    { 
    char cognome [50]; 
    int vers; 
    char lingua[2]; 
    };
    Come la scrivo su files con il C++ standard?
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  2. #2

  3. #3
    con le funzioni del C++ di ifstream/ofstream
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    2,894
    Non mi ricordo come si usano...

    Per queste cose uso C


  5. #5
    Originariamente inviato da l.golinelli
    Non mi ricordo come si usano...

    Per queste cose uso C

    a me serve in C++
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  6. #6
    Utente di HTML.it L'avatar di Zalex
    Registrato dal
    Aug 2001
    Messaggi
    357
    allora,
    includi la libreria fstream(non c'e' poi bisogno di includere iostream xke' fstream la include)

    per scrivere:

    ofstream os("nomefile");
    //ora puoi usare lo stream os per scrivere sul file
    os<<"questa riga viene scritta sul file nomefile"<<endl;


    facendo in questo modo al momento della scrittura viene cancellato l'eventuale contenuto del file, per evitare che cio' accada:
    ofstream os("nomefile",ios::app);
    os<<............ecc


    se non sono stato chiaro sulla differenza tra le due modalita' di stream confronta i risultati del seguenti esempi:

    //modalita' di default sovrascrive il file
    #include<fstream>

    main(){
    ofstream os("unfile.txt");
    for(int i=0;i<5;i++)
    os<<i<<endl;
    os.close();
    }

    //modalita' append non sovrascrive il file
    #include<fstream>

    main(){
    ofstream os("unfile.txt",ios::app);
    for(int i=0;i<5;i++)
    os<<i<<endl;
    os.close();
    }

    NB se il file non esiste lo crea!
    ciao

  7. #7
    sei un mito!
    Ora posso risolvero un grosso problema!

    E per leggere?
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  8. #8
    codice:
    #include <iostream>
    #include <fstream>
    using namespace std;
    
    int main(){
    
        char fname[20], lname[20];
    
        // LEGGE
    
        ifstream in ("scheda.txt");
        in >> fname;
        in >> lname;
        in.close();
    
        cout << fname << " " << lname << endl;
    
        return 0;	
    
    }
    -----------------------------------------
    P.S. All'interno del file di testo "scheda.txt"
    le stringhe NOME e COGNOME vanno inserite nel seguente ordine

    NOME
    COGNOME
    ...Terrible warlords, good warlords, and an english song

  9. #9
    Utente di HTML.it L'avatar di Zalex
    Registrato dal
    Aug 2001
    Messaggi
    357
    per leggere usi ifsream
    ifsream is("nomefile");
    naturalmente l'apertura del file puo' fallire per vari motivi(tipo il file non esiste) quindi dopo ifstream is("nomefile") conviene fare un controllo,piu' precisamente:
    if(!is){cout<<"errore durante l'apertura del file"<<endl;exit(-1);}

    ora analogamente a quanto gia' deto per la scrittura puoi usare is per leggere dal file;
    istream offre diversi metodi utili alla lettura!per esempio se vuoi leggere il file riga per riga puoi farlo con getline(stream di input,buffer);
    esempio:


    ......
    ifstream is("unfile.txt");
    if(!is){cout<<"Fail"<<endl;exit(-1);}
    string buffer;
    getline(is,buffer);
    ......

    //in baffer c'e' la prima rigfa del file;


    naturalmente se vuoi leggere tutto il file fai un ciclo while(!is.eof()).....
    ciao

  10. #10
    Utente di HTML.it L'avatar di Zalex
    Registrato dal
    Aug 2001
    Messaggi
    357
    scusa se do troppe cose per scontato, ma se devo spiegare tutto per filo e per segno trasformerei una risposta di un forum in un papiro


    cmq eof() e' un metodo di istream che ritorna true quando sei arrivato alla fine del file( end of file)

    ciao

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.