Объект wcin в C ++ - это объект класса wistream. Он используется для приема ввода от стандартного устройства ввода, то есть клавиатуры. Он связан со стандартным входным потоком C stdin.
Разница между wcin и cin
cin
пользователи char
(узкий символ) как символьный тип. Его можно использовать для символов ASCII и ANSI.
Для интернационализации нам нужны строки Unicode, которые не подходят char
. wcin
использует wchar_t
(широкий символ) и может использоваться для символов Юникода.
декларация wcin
extern wistream wcin;
Он определен в заголовочном файле "> заголовочный файл.
Гарантируется, что wcin
объект будет инициализирован во время или до первого создания объекта типа ios_base::Init
. После создания wcin
объекта wcin.tie()
возвращается, &wcout
что означает, что любая операция форматированного ввода в wcin принудительно вызывает вызов, wcout.flush()
если какие-либо символы ожидают вывода.
«Wc» in wcin
относится к «широкому символу», а «in» означает «ввод», следовательно, wcin
означает «ввод широких символов». wcin
Объект используется вместе с оператором экстракции (>>), чтобы получить поток символов. Общий синтаксис:
wcin >> varName;
Оператор извлечения можно использовать более одного раза, чтобы принять несколько входных данных как:
wcin >> var1 >> var2 >>… >> varN;
wcin
Объект также может быть использован с другими функциями , такими как членами getline()
, read()
и т.д. Некоторые из наиболее часто используемых функций - членов являются:
wcin.get(wchar_t &ch):
Читает широкий символ и сохраняет его в гл.wcin.getline(wchar_t *buffer, int length):
Считывает поток широких символов в строковый буфер, останавливается, когда- он прочитал символы длиной 1 или
- когда он находит символ конца строки (' n') или конец файла.
wcin.read(wchar_t *buffer, int n):
Читает n байтов (или до конца файла) из потока в буфер.wcin.ignore(int n):
Игнорирует следующие n символов из входного потока.wcin.eof():
Возвращает ненулевое значение, если достигнут конец файла (eof).
Пример 1: wcin с оператором извлечения:
#include using namespace std; int main() ( wchar_t word(20); wcout <> word; wcout << word; return 0; )
Когда вы запустите программу, возможный результат будет:
Введите слово: катманду катманду
Пример 2: wcin с функцией-членом:
#include using namespace std; int main() ( wchar_t str(50), ch; wcout << L"Enter a string: "; wcin.getline(str, 20); wcout << L"Enter a character: "; wcin.get(ch); wcout << L"String = " << str << endl; wcout << L"Character = " << ch << endl; return 0; )
Когда вы запустите программу, возможный результат будет:
Введите строку: программа с использованием wcin Введите символ: h Строка = программа с использованием wcin Символ = h
Быть осторожен
char16_t
и char32_t
, которые были введены в C ++ 11, рекомендуется использовать вместо этого, wchar_t
потому что wchar_t
в некоторых системах это 16 бит, а в других - 32 бит. Это затрудняет перенос.