![]() |
Mòdul
8
![]() |
Fonaments de
Programació. Llenguatge C/C++![]() |
Pràctica ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
![]() |
Pràctica
d'ampliació ![]() ![]() |
Emulació del comandament copy: copiar fitxers
En aquesta pràctica emularem el comandament copy de l'MS-DOS, d'aquesta forma aprendrem a obrir un arxiu i escriure i llegir octets un a un.
|
||||||
![]() |
Desenvolupament de la pràctica
Definiu un projecte nou anomenat m8p04 i afegiu-li un arxiu de font C/C++ anomenat m8p04.cpp. Escriviu el següent codi:
Explicació del programa Per executar aquest programa s'ha d'especificar necessàriament el nom de dos arxius, l'arxiu origen i l'arxiu destí. El programa fa la comprovació que s'escriuen aquests dos arguments en la següent part de codi:
En el cas que no s'hagi especificat els dos arguments, surt el missatge i acaba el programa. S'obren simultàniament els dos arxius especificats a la línia de comandaments, un de lectura (r) i un altre d'escriptura (w), ambdos binaris (b):
La funció fopen() torna un valor a un punter NULL en el cas que no s'hagi pogut obrir l'arxiu. És sempre necessari comprovar aquest valor per tal de no fer servir un punter NULL, que pot fer caure el sistema. La comprovació en aquest cas es fa amb els dos arxius alhora:
Una vegada oberts els dos arxius es llegeix octet per octet amb la funció getc() i s'escriu octet per octet amb la funció putc():
El bucle s'executa fins que es trobi el final de l'arxiu origen. Aquesta comprovació es fa amb la funció feof(). |