Código C++:
Ver original
#include <iostream> #include <vector> #include <fstream> using namespace std; vector<string> CopiaDatos(ifstream& arch){ vector<string> copia; string linea; getline(arch,linea); while(!arch.eof()){ copia.push_back(linea); getline(arch,linea); } return copia; } //esta es la funcion que busca "hola" y copia al txt. void BuscoLinea(ofstream& v1, const vector<string>& p1){ int i = 0; int pos = p1[i].find("hola"); while(i < p1.size()){ if(pos != -1){ v1 << p1[i] << endl; } i++; pos = p1[i].find("hola"); } } int main(){ vector<string> GuardaDatos; ofstream salida("prueba.txt"),busqueda("busqueda.txt"); salida << "hola, como estas?" << endl; salida << "como, tdoas" << endl; salida << "estas,asdsa?" << endl; salida << "hello,gssddfdfs" << endl; salida << "hola dfsdf" << endl; salida << "hola sdfsd " << endl; salida << "hola sdfsdf" << endl; salida.close(); ifstream entrada("prueba.txt"); GuardaDatos = CopiaDatos(entrada); for(int i = 0; i<GuardaDatos.size(); i++){ cout << GuardaDatos[i] << endl; } // hasta aca anda todo bien pero despues copia las lineas y se cierra dando un error BuscoLinea(busqueda,GuardaDatos); entrada.close(); busqueda.close(); return 0; }