C ++ wcin - Стандартная библиотека C ++

Объект 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 бит. Это затрудняет перенос.

Интересные статьи...