13/03/2008, 16:46
|
| | | Fecha de Ingreso: enero-2006 Ubicación: Mexico DF
Mensajes: 184
Antigüedad: 19 años Puntos: 3 | |
Re: Llenar un arreglo desde un archivo de texto leido linea por linea Bueno, yo pudiera hacer las siguientes observaciones:
1. Siempre es recomendable que condiciones la apertura del archivo, esto es, en lugar de colocar directamente
fp1 = fopen("Prueba.htm", "r");
poner lo siguiente
if((fp1 = fopen("Prueba.htm", "r"))==NULL){
printf("Error en apertura de archivo");
exit 1;
}
Con esto evitas que en caso de que el archivo no pueda ser abierto se genere una excepción en tu programa.
2. Tienes un array bidimensional y en la instrucción
fscanf(fp1, "%s", palabra);
lo mandas directamente al arreglo, esto no puede realizarse de esa forma, tienes que indicar el primer indice del arreglo
fscanf(fp1, "%s", palabra[0]);
3. En la definicion del array estableces
char palabra[25][4];
lo que diría que puedes almacenar hasta 25 palabras con una longitud de 3 caracteres cada una, ya que el cuarto caracter tiene que ser necesariamente un nulo ("\0")
Cuando lees el archivo, si la cadena que obtienes con fscanf es mayor de 3 caracteres desborda el array y se generará un comportamiento raro de tu prog o incluso una excepción.
Tambien al tener una while hasta el fin del archivo si se leen mas de 25 palabras se volverá a desbordar tu array.
Este tipo de procedimiento de manera personal lo realizaría a través de estructuras pero habría que considerar la funcionalidad que le darás al código que estas desarrollando...
__________________ Saludos... Todos somos sabios, solo que en diferentes disciplinas... |