Hola, el siguiente programa escribe cadenas en un fichero binario, luego los lee del fichero y finalmente las muestra por pantalla:
Código C:
Ver original#include <stdio.h> //escribe una cadena en un fichero y después lo lee y escribe en pantalla
struct registro{
char nombre[50];
};
int main ()
{
FILE *fich;
char op;
struct registro datos;
/* Escritura del float en el fichero */
if ((fich
= fopen ("cadenas.dat", "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 ("cadenas.dat", "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, contestarme pronto esta tarde tengo examen. Gracias.