Ho questa struct:
Come la scrivo su files con il C++ standard?codice:struct conf { char cognome [50]; int vers; char lingua[2]; };
Ho questa struct:
Come la scrivo su files con il C++ standard?codice:struct conf { char cognome [50]; int vers; char lingua[2]; };
La stupidità umana e l'universo sono infinite.
Della seconda non sono certo(Einstein)
Gnu/Linux User
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
Non mi ricordo come si usano...
Per queste cose uso C
![]()
a me serve in C++Originariamente inviato da l.golinelli
Non mi ricordo come si usano...
Per queste cose uso C
![]()
La stupidità umana e l'universo sono infinite.
Della seconda non sono certo(Einstein)
Gnu/Linux User
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
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
-----------------------------------------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
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
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