* Tiedostojen käsittely C++ - tietovirroilla
* sizeof strlen
* Parametrilliset makrot
* Tiedostot joissa rivillä monta kenttää
Tied. avaaminen C: FILE *f = fopen(nimi,tyyppi); C++: ifstream fi(nimi); ofstream fo(nimi); tai: ifstream fi; ... fi.open(nimi); Lukeminen C: fscanf(f,format,osoite,...); fgets(mjono,max_pit,f); C++: fi >> muuttuja; fi.getline(mjono,max_pit); Kirjoittaminen C: fprintf(f,format,lauseke,...); C++: fo << lauseke; Sulkeminen C: fclose(f); C++: fi.close(); tai automaattisesti hajottajan ansiosta Muuttujan koko sizeof(muuttuja) // tavuina Tyypin viemä tila sizeof(tyyppi) // tavuina
C: FILE *fi = fopen(nimi,"rt") - fscanf(fi,...) - fgets(...,fi) - feof(fi) - fclose(fi) FILE *fo = fopen(nimi,"wt") - fprintf(fo,...) - fclose(fo) C++: ifstream fi(nimi) - fi >>... - fi.getline(...) - fi.eof() - fi.close() ofstream fo(nimi) - fo <<... - fo.close()Pyrimme seuraavaksi lisäämään kerho- ohjelmaamme tiedostosta lukemisen ja tiedostoon tallettamisen. Tätä varten tutustumme ensin lukemiseen mahdollisesti liittyviin ongelmiin.
Jos lukija haluaa keskittyä pelkästään C++:aan, hän voi hypätä C- ongelmia käsittelevien kappaleiden ylitse. Jos luetaan molemmat osat, on kuitenkin muistettava käyttää pareina C- funktioita ja C++- funktioita (ei siis esim. ifstream fi("oma.txt") ja fclose(fi) vaan fi.close() ).