C++: Parsear entrada separando palabras
Versión en inglés / English version Releyendo el libro de Stroustrup , encontré algo que me habría gustado saber tiempo atrás: una forma piola de parsear un stream de entrada separando palabras con whitespace ( 1 whitespace = cualquier cantidad consecutiva de espacios y/o tabs ). Esto se hace con un istream_iterator, así: #include <fstream> #include <iostream> #include <algorithm> #include <vector> void main(){ using std::cout; using std::endl; // Leemos desde standard input, pero podria ser desde un archivo std::istream_iterator<std::string> ii( std::cin ); cout << "--->Entrada parseada separando por whitespace:" << endl; // Supongamos que dejamos de leer cuando leemos el string "FIN" std::vector<string> palabras; while ( *ii != "FIN" ){ cout << *ii << endl; palabras.push_back(*ii); ii++; } // Ordenamos las palabras cout ...