Hola, el siguiente programa escribe cadenas en un fichero binario, luego las lee del fichero y finalmente las muestra por pantalla:
#include <stdio.h> //escribe una cadena en un fichero y después lo lee y escribe en pantalla
#include <string.h>
struct registro{
char nombre[50];
};
int main ()
{
FILE *fich;
char nom_fich[50];
char op;
struct registro datos;
printf("Introduzca nombre del fichero: "); /* Escritura del float en el fichero */
if ((fich
= fopen (nom_fich
, "wb")) == NULL
) {
printf ("Error de creación del fichero\n");
}
else{
do{
printf("Introduce una cadena: "); scanf("%49s",datos.
nombre); fwrite (&datos
, sizeof (datos
), 1, fich
); }while((op == 's') || (op == 'S'));
}
/* Lectura del float del fichero */
if ((fich
= fopen (nom_fich
, "rb")) == NULL
) {
printf ("Error de existencia del fichero\n");
}
else{
fread (&datos
, sizeof(datos
), 1, fich
); fread (&datos
, sizeof(datos
), 1, fich
); }
printf ("%s\n", datos.
nombre); }
Cuando lo compilo sólo me imprime la primera cadena, ¿por qué? Por favor, contestadme pronto esta tarde tengo examen de recuperación. Gracias.