previous next Up Title Contents Index

17. Tiedostot ja makrot


Mitä tässä luvussa käsitellään?

* Tiedostojen käsittely C- funktiolla

* Tiedostojen käsittely C++ - tietovirroilla

* sizeof strlen

* Parametrilliset makrot

* Tiedostot joissa rivillä monta kenttää

Syntaksi:

	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 

Yhdessä käytettävät funktiot tai operaattorit:

	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() ).


previous next Up Title Contents Index