Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys

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);   ofstream fo(nimi,ios::app);
	                      tai: ifstream fi; ... fi.open(nimi);
	Lukeminen       C:    fscanf(f,format,osoite,...);
	                      fgets(mjono,max_pit,f);
	                C++:  fi >> muuttuja;
	                      getline(fi,mjono);
	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 >>... - getline(fi,...) - 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.

Perehdymme tässä luvussa tarkemmin vain C++:n tiedostonkäsittelyyn.


Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys