BIBLIOTECAS DE FUNCIONES

5. Biblioteca de funciones
En C++, la biblioteca estándar es una colección de clases y funciones, escritas en el núcleo del lenguaje. La biblioteca estándar proporciona varios contenedores genéricos, funciones para utilizar y manipular esos contenedores, funciones objeto, cadenas y flujos genéricos (incluyendo E/S interactiva y de archivos) y soporte para la mayoría de las características del lenguaje. La biblioteca estándar de C++ también incorpora la biblioteca estándar de C. Las características de la biblioteca estándar están declaradas en el espacio de nombres std.
La Standard Template Library es un subconjunto de la biblioteca estándar de C++ que contiene los contenedores, algoritmos, iteradores, funciones objeto, etc; aunque algunas personas utilizan el término STL indistintamente con la biblioteca estándar de C++.
Los archivos de cabecera de la biblioteca estándar de C++ no usan la extensión «.h».

5.1 Istream

C ++ Biblioteca istream 


DESCRIPCIÓN
Se utiliza para preparar corriente de entrada. Todas las funciones miembro que realizan una operación de entrada construyen automáticamente un objeto de esta clase y, a continuación evalúan (which returns true if no state flag was set) . Sólo si este objeto se evalúa como verdadera, la función intenta la operación de entrada (otherwise, it returns without performing it) . Antes de regresar, la función destruye el objeto centinela.


DECLARACIÓN
A continuación se presenta la declaración de std :: :: basic_istream centinela.
C ++ 98
class sentry {
   public:
      explicit sentry (basic_istream& is, bool noskipws = false) ;
      ~sentry() ;
   operator bool() const;
   private:
      sentry (const sentry&) ;            
      sentry& operator= (const sentry&) ; 
};
C ++ 11
class sentry {
   public:
      explicit sentry (basic_istream& is, bool noskipws = false) ;
      ~sentry() ;
      explicit operator bool() const;
      sentry (const sentry&) = delete;
      sentry& operator= (const sentry&) = delete;
};


miembros
explicit sentry (basic_istream& is, bool noskipws = false) ; - Prepara el flujo de salida para una operación de salida, la realización de las acciones descritas anteriormente.
~ sentry() ; - Lleva a cabo ninguna operación (implementation-defined) .
explicit operator bool() const; - Cuando se evalúa el objeto, se devuelve un valor booleano que indica si el constructor de centinela a cabo con éxito todas sus tareas: Si en algún momento del proceso de construcción, se estableció un indicadores de error interno, esta función siempre devuelve false para ese objeto.


EJEMPLO
En abajo ejemplo explica acerca std :: :: basic_istream centinela.
#include <iostream>
#include <string>
#include <sstream>
#include <locale>

struct Phone {
   std::string digits;
};

std::istream& operator>>(std::istream& is, Phone& tel) {
   std::istream::sentry s(is) ;
   if (s) while (is.good() ) {
      char c = is.get() ;
      if (std::isspace(c,is.getloc() )) break;
      if (std::isdigit(c,is.getloc() )) tel.digits+=c;
   }
   return is;
}

int main () {
   std::stringstream parseme ("   (555) 2326");
   Phone myphone;
   parseme >> myphone;
   std::cout << "digits parsed: " << myphone.digits << '\n';
   return 0;
}
Vamos a compilar y ejecutar el programa anterior, esto producirá el siguiente resultado -

digits parsed: 5552326

5.2 Iostream
Iostream es un componente de la biblioteca estándar (STL) del lenguaje de programación C++ que es utilizado para operaciones de entrada/salida. Su nombre es un acrónimo de Input/Output Stream. El flujo de entrada y salida de datos en C++ (y su predecesor C) no se encuentra definida dentro de la sintaxis básica y se provee por medio de librerías de funciones especializadas como iostream. iostream define los siguientes objetos:
·         cin : Flujo de entrada (que entra)
·         cout : Flujo de salida (que sale)
·         cerr : Flujo de error no almacenado.
·         clog : Flujo de error almacenado.
Todos los objetos derivados de iostream hacen parte del espacio de nombres std.

EJEMPLO: El clásico programa Hola Mundo puede ser expresado en C++ utilizando iostream:

#include <iostream> // biblioteca que contiene las funciones de entrada y salida de c++ . Viene Input/Output Stream
#include <cstdlib>
using namespace std;
int main()
{
    cout << "¡Hola, mundo!" << endl;
    system("pause");
    return 0;
}

Comentarios