Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/05/2014, 16:06
Urban94
 
Fecha de Ingreso: marzo-2014
Ubicación: Buenos Aires
Mensajes: 59
Antigüedad: 10 años, 9 meses
Puntos: 0
Problema al copiar una linea de un vector

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
  1. #include <iostream>
  2. #include <vector>
  3. #include <fstream>
  4.  
  5. using namespace std;
  6.  
  7. vector<string> CopiaDatos(ifstream& arch){
  8.     vector<string> copia;
  9.     string linea;
  10.     getline(arch,linea);
  11.     while(!arch.eof()){
  12.         copia.push_back(linea);
  13.         getline(arch,linea);
  14.     }
  15.  
  16.     return copia;
  17. }
  18.  
  19.  
  20. //esta es la funcion que busca "hola" y copia al txt.
  21. void BuscoLinea(ofstream& v1, const vector<string>& p1){
  22.     int i = 0;
  23.     int pos = p1[i].find("hola");
  24.     while(i < p1.size()){
  25.         if(pos != -1){
  26.             v1 << p1[i] << endl;
  27.         }
  28.         i++;
  29.         pos = p1[i].find("hola");
  30.     }
  31. }
  32.  
  33.  
  34. int main(){
  35.     vector<string> GuardaDatos;
  36.     ofstream salida("prueba.txt"),busqueda("busqueda.txt");
  37.     salida << "hola, como estas?" << endl;
  38.     salida << "como, tdoas" << endl;
  39.     salida << "estas,asdsa?" << endl;
  40.     salida << "hello,gssddfdfs" << endl;
  41.     salida << "hola dfsdf" << endl;
  42.     salida << "hola sdfsd " << endl;
  43.     salida << "hola sdfsdf" << endl;
  44.  
  45.     salida.close();
  46.  
  47.     ifstream entrada("prueba.txt");
  48.     GuardaDatos = CopiaDatos(entrada);
  49.  
  50.     for(int i = 0; i<GuardaDatos.size(); i++){
  51.         cout << GuardaDatos[i] << endl;
  52.     }
  53.    
  54. // hasta aca anda todo bien pero despues copia las lineas y se cierra dando un error
  55.     BuscoLinea(busqueda,GuardaDatos);
  56.  
  57.     entrada.close();
  58.     busqueda.close();
  59.  
  60.     return 0;
  61. }