Grabar y leer vectores completos en un archivo.
Hasta hora siempre que hemos utilizado la función fread y fwrite en el tercer parámetro hemos pasado el valor 1:
char letra='A'; fwrite(&letra, sizeof(char), 1, arch); int valor1=12; fwrite(&valor1, sizeof(int), 1, arch); char c; fread(&c, sizeof(char), 1, arch);
Veremos ahora como cuando necesitamos grabar o leer un vector en una sola llamada a la función fread o fwrite indicamos en dicho tercer parámetro el tamaño del vector.
Problema 1:
Confeccionar un programa con dos funciones:
1 - Crear un vector con 10 enteros y grabar dicho vector en un archivo binario llamado "archivo7.dat"
2 - Recuperar todos los datos del archivo creado anteriormente y almacenar los datos en un vector.
Archivo: programa229.c
La función fwrite nos facilita la grabación de un vector en forma completo:
int vec[TAM]={10,20,30,40,50,60,70,80,90,100}; fwrite(vec, sizeof(int), TAM, arch);
Es importante hacer notar que no le disponemos el caracter '&' previo al nombre 'vec' debido a que los vectores son punteros en el lenguaje C y por lo tanto estamos enviando la dirección del vector al enviarle 'vec'.
Ahora en el tercer parámetro indicamos la macro TAM que será remplazada por el valor 10 (esto debido a que el vector tiene 10 enteros)
La función para recuperar los 10 int almacenados en el archivo también lo hacemos con una sola llamada a la función fread:
int vec[TAM]; fread(vec, sizeof(int), TAM, arch);
No hay comentarios:
Publicar un comentario