std::cin, std::wcin
| Definido en el archivo de encabezado <iostream>
|
||
extern std::istream cin; |
(1) | |
extern std::wistream wcin; |
(2) | |
Los objetos globales std::cin y std::wcin controlan la entrada desde un búfer de flujo de datos de tipo definido por la implementación (derivado de std::streambuf), asociado con el flujo de entrada estándar de C: stdin.
Está garantizado que la construcción de estos objetos ocurra antes o durante el llamado al primer constructor de un objeto tipo std::ios_base::Init, y que esté disponible para su uso en los constructores y destructores de objetos estáticos con inicialización ordenada (siempre y cuando <iostream> sea incluido antes de que el objeto sea definido).
Es seguro acceder a estos objetos simultáneamente desde varios hilos, tanto para la entrada con formato como para la entrada sin formato, a menos que sync_with_stdio(false) haya sido emitido.
Una vez std::cin es construido, std::cin.tie() retorna &std::cout, y de la misma manera, std::wcin.tie() retorna &std::wcout. Esto significa que cualquier operación de entrada con formato en std::cin fuerza una llamada a std::cout.flush() si los caracteres están pendientes por salida.
Ejemplo
#include <iostream>
struct Foo {
int n;
Foo() {
std::cout << "Ingrese n: "; // no requiere flush
std::cin >> n;
}
};
Foo f; // objecto estático
int main()
{
std::cout << "f.n es " << f.n << '\n';
}
Salida:
Ingrese n: 10
f.n es 10
Ver también
| Inicializa los objetos flujo estándar. (clase miembro pública de std::ios_base)
| |
| Escribe al flujo de salida estándar de C stdout. (objeto global) |