Tarea 4 - observación

Examinar y consumir los bytes de la entrada estándar es muy sencillo usando std::cin. Prueben el siguiente código escribiendo "hola" en la entrada estándar:

   #include <iostream> 

   int main( ) {
      std::cout << std::cin.peek( ) << " " << (char)std::cin.peek( ) << "\n";    // .peek( ) examina
      std::cout << std::cin.peek( ) << " " << (char)std::cin.peek( ) << "\n";
      std::cout << std::cin.peek( ) << " " << (char)std::cin.peek( ) << "\n";
      std::cin.ignore( );                                                        // .ignore( ) consume
      std::cout << std::cin.peek( ) << " " << (char)std::cin.peek( ) << "\n";
      std::cout << std::cin.peek( ) << " " << (char)std::cin.peek( ) << "\n";
      std::cin.ignore( );
      std::cout << std::cin.peek( ) << " " << (char)std::cin.peek( ) << "\n";
   }

Notarán también que .peek( ) devuelve un entero. Cuando la entrada se acaba, se devuelve EOF (normalmente -1) que también existe en C. Lo anterior significa que las implementaciones de examina( ) y consume( ) de entrada_estandar son sumamente fáciles.
Como la tarea 4 prohibe usar <sstream> y otro archivo de biblioteca que es similar, para implementar entrada_cadena en verdad que tendrán que guardar el std::string y caminar sobre él (pero lo pueden hacer con un índice entero, realmente no necesitan usar apuntadores).