◐ Shell
clean mode source ↗

std::cin, std::wcin - cppreference.com

De cppreference.com

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:

Ver también

Inicializa los objetos flujo estándar.
(clase miembro pública de std::ios_base) [editar]
Escribe al flujo de salida estándar de C stdout.
(objeto global) [editar]