Test Foro de elhacker.net SMF 2.1

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 (cpp) [Seleccionar]

#include <iostream>
#include <fstream>


using namespace std;


int main(){
string leeArchivo;
char respuesta1;
char respuesta2;

ifstream file("ejemplo.txt");
getline(file, leeArchivo);
if(leeArchivo == "puede volar?"){
cout<<leeArchivo<<endl;
}
cin>>respuesta1;
if(respuesta1 == 'n'){
while(getline(file, leeArchivo)){
if(leeArchivo == "puede ladrar?"){
cout<<leeArchivo<<endl;
}
}
cin>>respuesta2;
if(respuesta2 == 'n'){
while(getline(file, leeArchivo)){
if(leeArchivo == "gato"){
cout<<leeArchivo<<endl;
}
}
}
if(respuesta2 == 's'){
getline(file, leeArchivo);
if(leeArchivo == "perro"){
cout<<leeArchivo<<endl;
}

}
}
else{
getline(file, leeArchivo);
if(leeArchivo == "pajaro"){
cout<<leeArchivo<<endl;
}
}

file.close();
return 0;
}

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 (cpp) [Seleccionar]
#include <iostream>
#include <fstream>
#include <string>
#include <stdlib.h>

using namespace std;

int main(int argc, char** argv) {
    string linea;
    ifstream archivoLeido ("archivo.txt.");
    int numeroLinea = 1;

    if(archivoLeido)
    {
        while(getline (archivoLeido, linea) )
        {
            if(linea == "colombia Vs argentina"){
                cout << "linea buscada: " << linea <<endl;
                cout << "Se encuentra en la linea numero: " << numeroLinea << endl;
            }
            numeroLinea++;
        }

    }
    else
        cout<<"No se pudo abrir el archivo";

    return 0;
}


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
Cita de: dato000 en 15 Noviembre 2016, 22:15 PM
prueba con esto:

Código (cpp) [Seleccionar]

#include <iostream>
#include <fstream>
#include <string>
#include <stdlib.h>

using namespace std;

int main(int argc, char** argv) {
    string linea;
    ifstream archivoLeido ("archivo.txt.");
    int numeroLinea = 1;

    if(archivoLeido)
    {
        while(getline (archivoLeido, linea) )
        {
            if(linea == "colombia Vs argentina"){
                cout << "linea buscada: " << linea <<endl;
                cout << "Se encuentra en la linea numero: " << numeroLinea << endl;
            }
            numeroLinea++;
        }

    }
    else
        cout<<"No se pudo abrir el archivo";

    return 0;
}


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!