Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Realser86 en 24 Octubre 2017, 23:06 pm



Título: PROBLEMA CON getline
Publicado por: Realser86 en 24 Octubre 2017, 23:06 pm
Buenas Tardes

Estoy usando un codigo para leer una linea especifica de un archivo.txt, el problema es que cuando intento leer una linea el contador empieza a contar desde la segunda linea del archivo,
ejemplo

este es mi archivo de texto

cada linea esta definida con las siguientes variables

archivo>>dia>>nombre_comp>>nombre_pro>>cant_com;

1 diego mouse 3
2 raul teclado 1
2 pedro teclado 2
2 luis USB3 2
5 juan USB3 10
7 lucho mouse 7

cuando le digo al codigo que me lea e imprima el nombre_comp de la linea 0 me imprime raul y no diego como debería ser  , y asi sucesivamente tomando como linea 0 la segunda linea de mi archivo

adjunto el código como ejemplo cuando le pido que me imprima el nombre_comp de la linea 1

if (archivo.is_open())
{
     string linea;
    int contador=0;

    while(getline(archivo,linea))
    {
       archivo>>dia>>nombre_comp>>nombre_pro>>cant_com;

       if(1==contador)
       {
          
          cout<<nombre_comp<<endl;
       }
       contador++;
    }
        archivo.close();   
}   
      
   
}

con este codigo le pido que me imprma en este caso la linea 1 que seria raul pero me imprime pedro, es decir nunca me toma en cuenta la primer linea del archivo que es diego, que debería ser linea 0, si no que empieza a contar la linea 0 desde raul.

1 diego mouse 3
2 raul teclado 1
2 pedro teclado 2
2 luis USB3 2
5 juan USB3 10
7 lucho mouse 7

 



Título: Re: PROBLEMA CON getline
Publicado por: Gallu en 25 Octubre 2017, 09:06 am
No crees que el problema podria estar en

Código
  1.  if(1==contador)
  2.       {
  3.  
  4.          cout<<nombre_comp<<endl;
  5.       }
  6.       contador++;
  7.  

prueba a cambiarlo a

Código
  1.  if(0==contador)
  2.       {
  3.  
  4.          cout<<nombre_comp<<endl;
  5.       }
  6.       contador++;
  7.  


Título: Re: PROBLEMA CON getline
Publicado por: Realser86 en 25 Octubre 2017, 21:33 pm
igua si lo tomo como (0==contador), no me lee la primer linea nunca.
Empieza desde la segunda, es decir el codigo lee asi

                    1 diego mouse 3
 linea 0         2 raul teclado 1
 linea 1         2 pedro teclado 2
 linea 2         2 luis USB3 2
 linea 3         5 juan USB3 10
 linea 4         7 lucho mouse 7
    .
    .
    .
 linea n