Por favor, si alguien me puede ayudar, que lea mis peticiones de antes. Y me conteste a mi correo. Necesito pasar de un fichero texto, en el se almacena un numero identificador, y el dni, de una serie de alumnos. Tengo que recoger el DNI, de ese fichero texto, y crear un fichero binario a partir del fichero texto, cogiendo el DNI del fichero texto, y pasandolo al binario. Pero no sé como hacerlo.
El fichero texto tiene este aspecto.
1 30458985
2 25698896
Es decir, se me ha ocurrido una cosa asi:
FILE *fp;
FILE *ficbin;
DATOSALUMNO d;
char car;
char dni[10];
int i;
if((fp=fopen("alumnos.txt", "r"))== NULL)
{
printf("El fichero alumnos.txt no existe\n"); //abrimos el fichero texto para lectura
exit(1);
}
if((ficbin =fopen("alumnos.bin", "wb"))== NULL)
{
printf("El fichero no se puede crear\n"); //abrimos el fichero texto para lectura
exit (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<10; i++)
{
car = fgetc(fp);
}
strcat(dni, car);
/*PERO AQUI EL COMPILADOR ME DA UN ERROR, PORQUE NO ME DEJA*/
/*CONCATENAR UNA CADENA DNI, CON UN CARACTER*/
/*YO LO QUE PRETENDO ES LEER EL DNI,DEL FICHERO TEXTO,Y ALMACENARLO
EN UNA VARIABLE,PARA EL FICHERO BINARIO*/
fwrite(&dni, sizeof(char), 1, ficbin);
printf("Introduzca los apellidos: ");
gets(d.apellidos);
printf("Introduzca el nombre: ");
gets(d.nombre);
printf("Introduzca el numero de años: ");
scanf("%d",&d.numero_anyo);
}
}/*cierre del while*/
}while(!feof(ficbin));
fclose(ficbin);
fclose(fp);
}
Por favor si alguien me ayuda a encontrar el error, o la manera de que me funcione.