Problemas al leer un fichero en C

Iniciado por antolinalvaro, 26 Julio 2018, 10:50 AM

0 Miembros y 1 Visitante están viendo este tema.

antolinalvaro

Buenos días.
Alguien me sabría decir por qué me surge este problema?
Al leer el fichero, he comprobado con un printf que me leia bien las dos cabeceras del fichero, pero sale esto al ejecutarlo:
********NOMINAS DE LA EMPRESA******** (
Pongo aqui el codigo en c:
void leerDatos(){
 FILE* Fichero;
 char Cabecera[100],Cabecera2[100],Resto[100];
 float Sueldo[100];
 int i;
 Fichero = fopen("ficheronominas.txt","r");
 fscanf(Fichero,"%[^\n]",Cabecera);
 fscanf(Fichero,"%[^\n]",Cabecera2);
 printf("%s %s",Cabecera,Cabecera2);
 fclose(Fichero);
}
int main(){
 FILE* Fich;
 char Cab,Cab2,Operario;
 Fich = fopen("ficheronominas.txt","r");
 leerDatos(Cab,Cab2);
 fclose(Fich);  
}

Y el fichero:
********NOMINAS DE LA EMPRESA********
Trabajador   Otoño Invierno Primavera Verano
PedroLuque_   3000 2980 2500 2700
RubenCalvo00   2000 1200 650 -600




El problema es que en la variable Cabecera2 aparece una especie de matriz al ejecutarlo




Ya lo resolvi  :laugh:

animanegra

No estas leyendo el intro. mete un fscanf(Fichero,"\n"); entre una lectura y la siguiente.


 fscanf(Fichero,"%[^\n]",Cabecera);
 fscanf(Fichero,"\n");
 fscanf(Fichero,"%[^\n]",Cabecera2);


Por otro lado te sobran aperturas de archivo, si lo abres dentro de la funcion ¿Para que lo abres fuera si despues no lo usas?

42
No contesto mensajes por privado, si tienes alguna pregunta, consulta o petición plantéala en el foro para que se aproveche toda la comunidad.

antolinalvaro

Gracias por el consejo. Es cierto, abro más veces de la cuenta porque el compilador de Ubuntu me suele dar problemas  :-\

animanegra


42
No contesto mensajes por privado, si tienes alguna pregunta, consulta o petición plantéala en el foro para que se aproveche toda la comunidad.

antolinalvaro

#4
La mayoria de veces " Violación de segmento 'core generado' ", y si pongo más fopen se soluciona,
aunque no sé si esa será el motivo