Programación General > C/C++

 porque se cuelga?¿ se sale de algun vector?¿

(1/1)

meana:

--- Código: C++ ---#include <iostream>#include <stdlib.h>#include <fstream>#include <vector>#include <string> using namespace std; string conversion_caracter (vector<int> &v2,  int &i){    string TC;        if(v2[i]==2){            TC="abc";        }        else if(v2[i]==3){           TC="def";        }        else if(v2[i]==4){           TC="ghi";        }        else if(v2[i]==5){           TC="jkl";        }        else if(v2[i]==6){           TC="mno";        }        else if(v2[i]==7){           TC="pqrs";        }        else if(v2[i]==8){           TC="tuv";        }                else if(v2[i]==9){           TC="wxyz";        }           return TC;}void eliminar (vector <string> &v3,int &p){  for (int i=p;i<v3.size()-1;i++)    v3[i]=v3[i+1];    v3.pop_back();}vector<string> funcion_iterativa (vector<string> &v, vector<int> &v1){    vector<string> CP(v.size());    for(int i=0; i<v.size(); i++){            CP[i]=v[i];        }    for(int i=0; i<v1.size(); i++){        string aux=conversion_caracter(v1,i);        for(int j=0; j<CP.size(); j++){            for(int k=0; k<CP[j].size();k++){                for(int l=0; l<aux.size(); l++){                    if(CP[j][k]==aux[l])break;                    else if(l==aux.size()-1){                        eliminar(CP,j);                    }                }            }        }    }    return CP;}int main (int argc, char* argv[ ]){    ifstream f1 (argv[1]);    ofstream f2 (argv[2]);    int n;    f1 >> n;    vector<int>CD(n);    for (int i=0; i<n; i++){        f1 >> CD[i];    }    string palabra;    vector<string>diccionario;    f1 >> palabra;    while (!f1.eof()){        diccionario.push_back(palabra);        f1 >> palabra;    }    for(int i=0; i<funcion_iterativa(diccionario, CD).size(); i++){        f2 << funcion_iterativa(diccionario, CD)[i] << endl;    }    f1.close();    f2.close();    return 0;}  llevo toda la tarde con el programa y no consigo que funcione, se supone que al programa hace lo siguiente:
le paso un fichero con con unos numeros y unas palabras, el primer numero se corresponde a la cantidad de numeros que te dan, y los siguientes numeros es como si fuesen las teclas del telefono movil del 2 al 9, con el programa lo que debo hacer es que se copien en el segundo fichero aquellas palabras que se puedan formar con los digitos que te dan de inicio y en ese orden por ejemplo si te dan un fichero que contiene
4
4 6 5 2
manuel
inka
sistema
operativo
hola
nika
boligrafo
hotmail
pero

el fichero de salida deberia contener las palabras inka y hola.

GRACIAS

Navegación

[0] Índice de Mensajes

Ir a la versión completa