#include<stdio.h>
#include<string.h>
#include<ctype.h>
#define TAMANYODNI 10
struct alumno
{
char DNI[10];
char nombre[25];
char apellidos[50];
int numero_anyo;
};
typedef struct alumno DATOSALUMNO;
main()
{
FILE *fp;
FILE *ficbin;
DATOSALUMNO d;
char car;
char dni[10];
int i;
char nombre[25];
char apellidos[50];
int numero_anyo;
if((fp=fopen("alumnos.txt", "r"))== NULL)
{
printf("El fichero alumnos.txt no existe\n"); //abrimos el fichero texto para lectura
return -1;
}
if((ficbin =fopen("alumnos.bin", "wb"))== NULL)
{
printf("El fichero no se puede crear\n"); //abrimos el fichero texto para lectura
return -1;
}
do {
while((car = fgetc(fp) != '\n')) /*se lee del fichero texto*/
{
if(isspace (car) == 0) //si c es un espacio en blanco
/*car == " ") si c es un espacio en blanco*/
{
for(i = 0; i<TAMANYODNI; i++)
{
dni
= fgetc(fp);
}
strcpy(d.DNI, dni);
}/*cierre del if*/
} /*cierre del while*/
do{
printf("Introduzca los Apellidos: ");
gets(apellidos);
printf("\n");
printf("Introduzca el Nombre: ");
gets(nombre);
printf("\n");
printf("Introduzca el Numero de años: ");
scanf("%d",&numero_anyo);
strcpy(d.nombre, nombre);
strcpy(d.apellidos, apellidos);
d.numero_anyo = numero_anyo;
fwrite(&d, sizeof(DATOSALUMNO), 1, ficbin);
}while(numero_anyo >3);
/* }cierre del while*/
}while(!feof(ficbin));
fclose(ficbin);
fclose(fp);
}
El codigo es este, me compila, pero no me hace lo que quiero. Quiero que me pide por teclado los datos, del alumno, y los meta en un fichero binario. La condicion de salida del do-while,es q el numero de años introducido,cuando sea menor de 3 se salga. Eso es lo que pretendo,pero no lo consigo.
Si alguien me puede ayudar, que vea este codigo, y me escriba a mi correo.
Gracias, ruego me contesten lo antes posible