Código (c) [Seleccionar]
int IDtableLoad( char DNI[] )
{
FILE *fptr;
char mot[BUFSIZ];
int i;
fptr = fopen( "DNIList.txt", "rt" );
if( fptr != NULL ) {
i = 0;
fscanf( fptr, " %s", mot );
while( !feof( fptr ) ) {
//Aqui deberias de agregar la variable leida a la variable global
fscanf( fptr, " %s", mot );
} /* while */
fclose( fptr );
} else {
i = -1;
} /* if */
return i;
} /* IDtableLoad */
Esta funcion hace lo siguiente:
Abrir el archivo
Lee un renglon
Lo guarda en una variable local
Lee el siguiente renglon. y asi sucesivamente
Mas nunca guarda la variable locan el el arreglo global que tiene.
Código (c) [Seleccionar]
char IDtable[MAXID][IDLEN+1];
Al parecer es un buffer que solo tiene espacio para 116 DNI.
El como pasar la variable local al buffer global es tu tarea.
Sugerencias
usar memcpy
hacer un ciclo manual y copiar byte por byte.
Cambiar el buffer estatico por memoria dinamica.
Traducir del frances al español jajajajaja
Otra observacion importante el programa es vulnerable a buffer overflow. si el renglon leido desde el archivo es de mayor tamaño a BUFSIZ entonces escribira en las variables continuas del programa y causara un segment fault