Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/07/2011, 17:09
paracoccidio
 
Fecha de Ingreso: abril-2011
Ubicación: Guadalajara, Jalisco, Mexico
Mensajes: 27
Antigüedad: 13 años, 6 meses
Puntos: 4
De acuerdo Respuesta: Error al leer el fichero txt

Pues vi tu codigo y me llamo la atencion, la verdad no supe que es lo que querias hacer pero pude corregir muchas cosas que te complicaban te dejo el codigo:
Código C++:
Ver original
  1. #include<iostream>
  2. #include<fstream>
  3. #include<cstring>
  4.  
  5.  
  6. using namespace std;
  7.  
  8. int main()
  9. {
  10.     int i,p,m;
  11.     float modulo;
  12.     bool espacio,finlinea=false;
  13.     char c,linea[30],prod[5],mod[5];
  14.     ifstream MiArchivo;
  15.    
  16.     //ABRIMOS EL FICHERO
  17.     MiArchivo.open("datos.txt",ifstream::in);
  18.    
  19.     if (!MiArchivo.fail())
  20.     {
  21.         while (!MiArchivo.eof() )
  22.         {
  23.             strcpy(linea,"");
  24.             strcpy(prod,"");
  25.             strcpy(mod,"");
  26.        
  27.             //LEEMOS LA LINEA
  28.             MiArchivo.getline(linea,sizeof(linea));
  29.        
  30.             i=17;
  31.             p=0;
  32.             m=0;
  33.             finlinea=false;
  34.        
  35.             //ESTE IF ESTÁ PARA SALTAR LINEAS QUE NO QUEREMOS PARA NADA
  36.             if(strlen(linea)>=17)
  37.             {
  38.                 while((i < 30) && (!finlinea))
  39.                 {
  40.                     c=linea[i];
  41.                     if(c==32)//32 espacio en codigo ascii
  42.                         espacio=true;
  43.                     if(c==10)// salto de linea          
  44.                         finlinea=true;
  45.                     else
  46.                     {
  47.                         //SI TODAVIA NO HEMOS ENCONTRADO EL ESPACIO,ES LA PRODUCCION
  48.                         if(!espacio)
  49.                         {
  50.                             prod[p]=linea[i];
  51.                             p++;
  52.                         }
  53.                         else
  54.                         {
  55.                             mod[m]=linea[i];
  56.                             m++;
  57.                         }
  58.                     }
  59.                     i++;
  60.                 }
  61.                 cout<<"Produccion: "<<prod<<endl;
  62.                 cout<<"Módulo: "<<mod<<endl;
  63.             }
  64.             else
  65.                 cout<<linea<<endl;
  66.         }
  67.         MiArchivo.close();
  68.     }
  69.     else
  70.         printf ("No se pudo abrir el archivo.");
  71.     cin.get();
  72.     return 0;
  73. }