Código
#include <iostream> #include <map> #include <vector> #include <sstream> using namespace std; typedef void (*Puntero_A_Funcion)(void); void Copiar(); void Escribir(); void Cortar(); int main() { void (*Funcion)(void); // Puntero a funcion sin argumentos string Mensaje; map<string,Puntero_A_Funcion> Comandos; vector<string> texto; string str; Comandos["write"] = Escribir; Comandos["copy"] = Copiar; Comandos["cut"] = Cortar; getline(cin, str); stringstream is(str); while(is >> str) texto.push_back(str); cout <<"Las palabras que pusiste son: " << endl; for (int i = 0; i < texto.size(); i++) cout << i + 1 << ". " << texto[i] << endl; cout << endl; for (int i = 0; i < texto.size(); i++) { Funcion = Comandos[texto[i]]; // Obtengo el puntero a la funcion correspondiente if (Funcion) // Si existe la funcion Funcion(); // llamar a la funcion else cout<<"Error, no existe el comando introducido: "<<texto[i]<<endl; } return 0; } void Escribir() { cout<<"Has escrito write"<<endl; } void Cortar() { cout<<"Has escrito cortar"<<endl; } void Copiar() { cout<<"Has escrito copiar"<<endl; }
En la misma función puedes escribir también el texto