SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: Alfonsos1 en Viernes 14 de Enero de 2011, 19:05

Título: Problema leyendo texto
Publicado por: Alfonsos1 en Viernes 14 de Enero de 2011, 19:05
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);
Título: Re: Problema leyendo texto
Publicado por: Amilius en Viernes 14 de Enero de 2011, 22:44
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.
Título: Re: Problema leyendo texto
Publicado por: Alfonsos1 en Sábado 15 de Enero de 2011, 00:25
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:
Título: Re: Problema leyendo texto
Publicado por: Vndecid en Sábado 22 de Enero de 2011, 22:21
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..