4 Entrada i sortida de fitxers

Els exemples que s'han tractat fins ara han demanat informació que s'ha introduït mitjançant el teclat i han mostrat per la pantalla els resultats. Aquestes dades, però, desapareixen en finalitzar el programa, ja que al programa no hi havia instruccions per guardar-les. De vegades, la informació per introduir o per visualitzar és massa extensa com per teclejar-la o per veure-la en pantalla. En aquests casos és interessant poder llegir o gravar la informació en fitxers registrats al disc dur, disquet o altres medis materials.

Quan al programa s'especifica que els canals d'entrada o de sortida d'informació són fitxers, i no el teclat o la pantalla, el programa llegeix o escriu informació als fitxers. El S.O. s'encarregarà d'obrir els fitxers i de transferir la informació entre aquests i el programa.

Per accedir als fitxers directament des del programa disposem d'una àmplia sèrie de funcions estàndar, però les funcions d'ús més freqüent és més reduïda i segueixen una seqüència típica

  1. Declaració de variable punter a FILE (FILE *). Aquesta declaració és obligatòria i es pot fer com a variable local o global. Per exemple FILE *fitxer1, *fitxer2;.

  2. Obrir fitxer (fopen). Per obrir un fitxer s'utilitza normalment la funció fopen(), que requereix dos paràmetres de tipus string (cadena de caràcters).

    La seva sintaxi és fopen(nomfitxer, mode d'accés). El primer paràmetre és el nom del fitxer que es vol obrir (nom físic) i el segon paràmetre és el mode d'accés al fitxer (r llegir, w escriure, ...). Si l'operació es realitza amb èxit, fopen torna un punter (adreça de la variable) a FILE, que serà emmagatzemada sobre una variable del programa. Aquesta variable serà la que es farà servir per identificar el fitxer en totes les altres funcions.

  3. Escriure o llegir al fitxer. Existeixen moltes funcions per a la lectura i escriptura dels fitxers, algunes de les més importants són

  4. Tancar el fitxer (fclose). És important no oblidar-nos de tancar tots els fitxers abans de sortir del programa, per no perdre informació. La funció que tanca el fitxer és fclose (FILE*fitxer). porta solament un paràmetre que és el punter a fitxer FILE*fitxer. A la taula 18 hi podem veure un exemple.


Taula 18: El programa imprimeix les línies d'un fitxer
\begin{table}\begin{verbatim}...


Utilitzant aquestes idees, fes les activitats 4 i 5.

Taller de simulació medi ambiental
2009-02-27