std::cin, std::wcin
Определено в заголовочном файле <iostream> | ||
|---|---|---|
extern std::istream cin; | (1) | |
extern std::wistream wcin; | (2) |
Глобальные объекты std::cin и std::wcin управляют вводом из буфера потока заданного реализацией типа (производного от std::streambuf), связанного со стандартным потоком ввода C stdin.
Эти объекты гарантированно инициализируются во время или до первого создания объекта типа std::ios_base::Init и доступны для использования в конструкторах и деструкторах статических объектов с упорядоченной инициализацией (если <iostream> включен до определения объекта).
Если не была выполнена sync_with_stdio(false), безопасно одновременное обращение к этим объектам из нескольких потоков для форматированного и неформатированного ввода.
После создания std::cin, std::cin.tie() возвращает &std::cout, а также std::wcin.tie() возвращает &std::wcout. Это означает, что любая операция форматированного ввода на std::cin вызывает std::cout.flush(), если какие-либо символы ожидают вывода.
Примечания
Буква «c» в имени относится к «символу» (stroustrup.com FAQ); cin означает «ввод символов», а wcin означает «ввод символов расширенной ширины».
Пример
#include <iostream>
struct Foo
{
int n;
Foo()
{
std::cout << "Enter n: "; // no flush needed
std::cin >> n;
}
};
Foo f; // static object
int main()
{
std::cout << "f.n is " << f.n << '\n';
}Возможный вывод:
Enter n: 10 f.n is 10
См. также
| инициализирует стандартные объекты потоков (публичный класс-член std::ios_base) |
|
выводит в стандартный поток вывода C stdout(глобальный объект) |
|
выражение типа FILE* связанное с входным потокомвыражение типа FILE* связанное с выходным потокомвыражение типа FILE* связанное с потоком ошибок (макро-константа) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/io/cin