Hola, bueno, lo primero me voy a presentar, soy nueva en el foro, y tampoco sé muy bien, como se usa, Pero vereis, soy alumna de informática, y tengo que hacer una práctica de programacion en lenguaje C. Estoy un poco perdida, porque es mi primer año, y necesito ayuda, porque estoy agobiadilla. Yo voy a enviar el enunciado de la practica y adjunto tambien lo que yo llevo hecho. Si alguien me puede ayudar, se lo agradecería enormemente, porque es muy improtante para mi.
Esto es lo que yo llevo hecho, y mi primer problema, es que no consigo la linea
/*/*/*/* esta me da un error al compilar. Porque yo necesito sacar el dni, del fichero de texto para meterlo en el binario. Sé que es difícil, pero si alguien es un experto, me podría ayudar. Gracias.
#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 !=0);
/* }cierre del while*/
}while(!feof(ficbin));
fclose(ficbin);
fclose(fp);
}
Adjunto el enunciado de la practica.