Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: ianmorar03 en 15 Noviembre 2016, 06:27 am



Título: [C++] Necesito ayuda con "getline"
Publicado por: ianmorar03 en 15 Noviembre 2016, 06:27 am
Hola de nuevo!
Tengo un problema que quiero resolver. Quiero leer un fichero, con ifstream, y getline, lo que pasa es que no puedo leer una linea especifica, se puede hacer eso?

Intente con If pero no me sale :( quisiera que por favor me ayudaran!

Aqui dejo el codigo
Código
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4.  
  5. using namespace std;
  6.  
  7.  
  8. int main(){
  9. string leeArchivo;
  10. char respuesta1;
  11. char respuesta2;
  12.  
  13. ifstream file("ejemplo.txt");
  14. getline(file, leeArchivo);
  15. if(leeArchivo == "puede volar?"){
  16. cout<<leeArchivo<<endl;
  17. }
  18. cin>>respuesta1;
  19. if(respuesta1 == 'n'){
  20. while(getline(file, leeArchivo)){
  21. if(leeArchivo == "puede ladrar?"){
  22. cout<<leeArchivo<<endl;
  23. }
  24. }
  25. cin>>respuesta2;
  26. if(respuesta2 == 'n'){
  27. while(getline(file, leeArchivo)){
  28. if(leeArchivo == "gato"){
  29. cout<<leeArchivo<<endl;
  30. }
  31. }
  32. }
  33. if(respuesta2 == 's'){
  34. getline(file, leeArchivo);
  35. if(leeArchivo == "perro"){
  36. cout<<leeArchivo<<endl;
  37. }
  38.  
  39. }
  40. }
  41. else{
  42. getline(file, leeArchivo);
  43. if(leeArchivo == "pajaro"){
  44. cout<<leeArchivo<<endl;
  45. }
  46. }
  47.  
  48. file.close();
  49. return 0;
  50. }
  51.  
No se si el codigo esta bien, si por favor me pudieran ayudar seria genial!


Título: Re: [C++] Necesito ayuda con "getline"
Publicado por: dato000 en 15 Noviembre 2016, 22:15 pm
prueba con esto:

Código
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <stdlib.h>
  5.  
  6. using namespace std;
  7.  
  8. int main(int argc, char** argv) {
  9.    string linea;
  10.    ifstream archivoLeido ("archivo.txt.");
  11.    int numeroLinea = 1;
  12.  
  13.    if(archivoLeido)
  14.    {
  15.        while(getline (archivoLeido, linea) )
  16.        {
  17.            if(linea == "colombia Vs argentina"){
  18.                cout << "linea buscada: " << linea <<endl;
  19.                cout << "Se encuentra en la linea numero: " << numeroLinea << endl;
  20.            }
  21.            numeroLinea++;
  22.        }
  23.  
  24.    }
  25.    else
  26.        cout<<"No se pudo abrir el archivo";
  27.  
  28.    return 0;
  29. }
  30.  

Ejemplo:

Archivo.txt
Citar
holacolombiaholacolombiaholacolombia
hola
hola
hola
colombia Vs argentina
hola
hola
hola colombia

(http://fotos.subefotos.com/c54e6c7b440a4f9251fed3c5c3a8a75do.png)


Título: Re: [C++] Necesito ayuda con "getline"
Publicado por: ianmorar03 en 17 Noviembre 2016, 20:37 pm
prueba con esto:

Código
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <stdlib.h>
  5.  
  6. using namespace std;
  7.  
  8. int main(int argc, char** argv) {
  9.    string linea;
  10.    ifstream archivoLeido ("archivo.txt.");
  11.    int numeroLinea = 1;
  12.  
  13.    if(archivoLeido)
  14.    {
  15.        while(getline (archivoLeido, linea) )
  16.        {
  17.            if(linea == "colombia Vs argentina"){
  18.                cout << "linea buscada: " << linea <<endl;
  19.                cout << "Se encuentra en la linea numero: " << numeroLinea << endl;
  20.            }
  21.            numeroLinea++;
  22.        }
  23.  
  24.    }
  25.    else
  26.        cout<<"No se pudo abrir el archivo";
  27.  
  28.    return 0;
  29. }
  30.  

Ejemplo:

Archivo.txt
(http://fotos.subefotos.com/c54e6c7b440a4f9251fed3c5c3a8a75do.png)


Esta muy interesante, deberia de probar eso, pero es para saber cual linea esta leyendo, y saber que en que numero de linea se encuentra la frase, pero me gustaria saber como hace uno para imprimir una linea en especifico!