Hola:
Como verán soy n00b en este foro y ayer me interesé en coger uno de los ejercicios de C y me gustó uno en particular que maneja ficheros:
Enunciado:
Escribir un programa que solicite palabras y las agrege a un fichero llamado c:\diccionario de forma que luego se puedan consultar las palabras una a una.
Bueno ....para ver si el programa efectivamente guardaba las palabras, modifique el ejercicio y en vez de consultar, quería mostrar las palabras guardadas. El problema, que usando Dev-c++(S.O. Windows XP), no arroja errores o advertencias, pero a la hora de ejecutar el programa, arroja un error algo así como..."este programa ha cometido un error y debe cerrarse". Supongo que es un error con punteros.
Si alguien se la puede con el ejercicio, por favor, responder.
Como verán soy n00b en este foro y ayer me interesé en coger uno de los ejercicios de C y me gustó uno en particular que maneja ficheros:
Enunciado:
Escribir un programa que solicite palabras y las agrege a un fichero llamado c:\diccionario de forma que luego se puedan consultar las palabras una a una.
Bueno ....para ver si el programa efectivamente guardaba las palabras, modifique el ejercicio y en vez de consultar, quería mostrar las palabras guardadas. El problema, que usando Dev-c++(S.O. Windows XP), no arroja errores o advertencias, pero a la hora de ejecutar el programa, arroja un error algo así como..."este programa ha cometido un error y debe cerrarse". Supongo que es un error con punteros.
Código [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#define max 10
int main(){
int i;
char ifilename[] = "diccionario.txt";
char palabra[20], idChar;
FILE *ifp; //apuntador a archivo
ifp = fopen(ifilename, "a+");// abre el archivo para add info.
//Si no existia se crea uno nuevo.
if(ifp==NULL){
printf("Error al abrir fichero diccionario.txt");
exit(0);
}
for(i=0;i<max;i++){
printf("Ingrese una palabra a continuacion:");
scanf("%s", &palabra);
fprintf(ifp, "%s\n", palabra);
}
fclose(ifp);
ifp = fopen(ifilename, "r");// abre el archivo para add info.
//Si no existia se crea uno nuevo.
if(ifp==NULL){
printf("Error al abrir fichero diccionario.txt");
exit(0);
}
while(fscanf(ifp, "%s", &idChar) != EOF)//mientras no llegue al fin
{
printf("%s", idChar); //de archivo se escriben
} //por pantalla los datos.
fclose(ifp); //cierra el archivo
return 0;
}
Si alguien se la puede con el ejercicio, por favor, responder.