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