• Miércoles 20 de Noviembre de 2024, 08:36

Autor Tema:  Problema leyendo texto  (Leído 1230 veces)

Alfonsos1

  • Miembro activo
  • **
  • Mensajes: 60
    • Ver Perfil
Problema leyendo texto
« en: Viernes 14 de Enero de 2011, 19:05 »
0
tengo un archivo de texto que contiene numeros de 3 sifras, por ejemplo asi:
078
008
670
801
etc...

el siguiente codigo lo que deve hacer es hacer que un array llamado "miarray" registre los valores (en caso de que no hallan mas lineas en el txt, le debe asignar un valor de 1000 al resto de valores del array), pero cuando chequeo el array "miarray" este tiene un valor de 0 en todas sus posiciones

FILE *f = fopen("Archivo.txt", "r");
char linia[3];
int miarray[60];
for(int i=0;i<60;i++)
{
  if(fgets(linia,3,f)!=NULL) miarray=atoi(linia);
  else miarray=1000;
}
fclose(f);

Amilius

  • Miembro HIPER activo
  • ****
  • Mensajes: 665
    • Ver Perfil
Re: Problema leyendo texto
« Respuesta #1 en: Viernes 14 de Enero de 2011, 22:44 »
0
Código: C++
  1.  
  2.     FILE *f = fopen("Archivo.txt", "r");
  3.     if (f) // Siempre verifica que tus punteros sean válidos.
  4.     {
  5.         char linea[4];// NUNCA te olvides del carácter nulo de finalización de cadena
  6.         int miarray[60];
  7.         for(int i=0; i<60; i++)
  8.         {
  9.             if(fgets(linea, sizeof(linea),f))
  10.             {
  11.                 miarray[i]=atoi(linea);
  12.             }
  13.             else
  14.             {
  15.                 miarray[i]=1000;
  16.             }
  17.         }
  18.         fclose(f);
  19.     }
  20.  
  21.  



P.D.
Deberías aplicar un corrector ortográfico a tus textos.

Alfonsos1

  • Miembro activo
  • **
  • Mensajes: 60
    • Ver Perfil
Re: Problema leyendo texto
« Respuesta #2 en: Sábado 15 de Enero de 2011, 00:25 »
0
ahora he podido, pero es raro, tube que poner un 5 en lugar de un 4 en la quinta linea de tu codigo y no se por que  :huh:

Vndecid

  • Miembro activo
  • **
  • Mensajes: 33
    • Ver Perfil
Re: Problema leyendo texto
« Respuesta #3 en: Sábado 22 de Enero de 2011, 22:21 »
0
Yo haria

Código: C
  1. File *archivo;
  2. char linea[10] //serian 3 lugares  para los numero uno mas para el n y uno mas para el yo puse 10 normalmente te dicen que pongas siempre unos luigares mas por las dudas de que aparezca algo "inesperado"
  3. int vector[60];
  4. int i;
  5.  
  6. AbrirArchivo(&archivo,"direccion","rt");
  7.  
  8. for(i=0;i<=59;i++)
  9. {
  10.    fgets(linea,10,archivo);
  11.    if(linea!=NULL)
  12.       vector[i]=anumero(linea);
  13.    else
  14.       vector[i]=1000;
  15. }
  16.  

anumero y AbrirArchivo hay que hacerlas

*tuve va con v..