![]() |
Mòdul
8
![]() |
Fonaments de
Programació. Llenguatge C/C++![]() |
Pràctica ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
![]() |
Pràctica
d'ampliació ![]() ![]() |
Lectura i escriptura de dades formatades en C++
En aquesta pràctica veurem un exemple de com es pot escriure i llegir dades formatades amb les classes de C++.
|
|||||||||
![]() |
Desenvolupament de la pràctica
Sense entrar en totes les subtileses de les entrades i sortides en C++, veurem un exemple senzill de com es pot obrir un arxiu, de com es pot escriure i llegir diferents tipus de dades i com es pot tancar un arxiu en C++. Definiu un projecte nou anomenat m8p07 i afegiu-li un arxiu de font C/C++ anomenat m8p07.cpp. Escriviu el següent codi:
Explicació del programa En primer lloc es pot comprovar que l'arxiu de capçalera propi de C++ ja no és stdio.h sinó fstream.h. Si també es vol fer servir manipuladors de sortida com setw, s'ha d'incloure l'arxiu iomanip.h. Amb
la línia:
s'obre un objecte de la classe ofstream anomenat fo. Aquest objecte és l'equivalent C del punter que torna la funció fopen quan obrim un arxiu d'escriptura. Amb aquesta definició ja s'ha obert l'arxiu. Per tal de detectar qualsevol error d'obertura de l'arxiu es fa una comprovació de l'objecte fo.:
L'escriptura de les diferents dades en l'arxiu es fa amb la següent sentència:
que és similar a les sortides per pantalla pròpies de C++ canviant l'objecte cout per l'objecte creat fo. Per tancar l'arxiu es crida a la funció membre close() de la següent forma:
La recuperació de les dades del fitxer es fa de forma similar a com es recuperaria de l'entrada estàndard o teclat canviant l'objecte cin per l'objecte fi:
Una vegada que tenim el contingut de les dades en memòria es pot imprimir en la pantalla amb ajuda de l'objecte cout:
El manipulador setw() indica el nombre d'espais que ocuparà en pantalla el valor imprès de la variable que s'indica a continuació. L'escriptura de dades es produeix fins que troba el final de l'arxiu, és a dir, fins que fi.eof() sigui veritat. Per obrir l'arxiu per llegir dades, es defineix un objecte de la classe ofstream de la següent forma:
|