Hola gente, tengo un problema al copiar una linea de un vector a un archivo de texto, el programa copia bien las lineas que tiene "hola" en el vector al txt, pero al terminar me salta un error y se cierra solo el programa D:
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;
}