Lenguaje C: fscanf
Hola, querÃa preguntaros si veis algún error en la siguiente instrucción:
while (fscanf(punteroF,"%s %s %s",aux[0],argv.fIn,argv.fOut) != EOF){
//Trato de cada lÃnea
}
Lo que quiero hacer es leer hasta final de fichero lÃnea a lÃnea. Este fichero tiene en cada lÃnea 3 palabras separadas por espacios. Leo la primea cadena y la guardo en la primera variable, leo la segunda, tras el espacio y la guardo en la segunda... y asà con la tercera
punteroF es de tipo FILE, y es el valor devuelto al hacer un fopen() (que hace correctamente)
argv.fIn y argv.fOut son cadenas de caracteres (char cadena[100];)
aux[0] es la primera posición de una variable declarada como char *aux[2];
Mi problema es que al hacer está instrucción mi programa me da un fallo de segmentación, alguien podrÃa ayudarme?
Gracias por adelantado
while (fscanf(punteroF,"%s %s %s",aux[0],argv.fIn,argv.fOut) != EOF){
//Trato de cada lÃnea
}
Lo que quiero hacer es leer hasta final de fichero lÃnea a lÃnea. Este fichero tiene en cada lÃnea 3 palabras separadas por espacios. Leo la primea cadena y la guardo en la primera variable, leo la segunda, tras el espacio y la guardo en la segunda... y asà con la tercera
punteroF es de tipo FILE, y es el valor devuelto al hacer un fopen() (que hace correctamente)
argv.fIn y argv.fOut son cadenas de caracteres (char cadena[100];)
aux[0] es la primera posición de una variable declarada como char *aux[2];
Mi problema es que al hacer está instrucción mi programa me da un fallo de segmentación, alguien podrÃa ayudarme?
Gracias por adelantado
Quizá deberÃas postear algo más de código, el error te lo presenta en esta lÃnea pero puede haberse generado en otra parte.
A falta de más información, parece que tu error es éste:
Según indicas, has declarado aux como un array de dos punteros a carácter. Al compilar, estos elementos contendrán, bien el valor NULL, bien un valor indeterminado (depende del compilador y de dónde se han declarado). Si no les asignas un valor "bueno" (es decir, que apunten a una cadena de caracteres que ya tengas en tu programa), al utilizarlo de la manera en que lo has hecho te encuentras con que estarás intentando escribir en una dirección desconocida (en la que no sabes lo que hay) o, lo más probable por el tipo de error que te indica, una dirección no válida o "prohibida".
Si lo que querÃas es un array de dos cadenas de caracteres, tendrÃas que poner
char aux[2][100];
(dos cadenas de 100 caracteres).
A falta de más información, es cuanto puedo indicarte. Saludos,
A falta de más información, parece que tu error es éste:
Según indicas, has declarado aux como un array de dos punteros a carácter. Al compilar, estos elementos contendrán, bien el valor NULL, bien un valor indeterminado (depende del compilador y de dónde se han declarado). Si no les asignas un valor "bueno" (es decir, que apunten a una cadena de caracteres que ya tengas en tu programa), al utilizarlo de la manera en que lo has hecho te encuentras con que estarás intentando escribir en una dirección desconocida (en la que no sabes lo que hay) o, lo más probable por el tipo de error que te indica, una dirección no válida o "prohibida".
Si lo que querÃas es un array de dos cadenas de caracteres, tendrÃas que poner
char aux[2][100];
(dos cadenas de 100 caracteres).
A falta de más información, es cuanto puedo indicarte. Saludos,
