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

Об'єкт wcin в C ++ є об'єктом класу wistream. Він використовується для прийому вхідних даних від стандартного пристрою введення, тобто клавіатури. Це пов'язано зі стандартним вхідним потоком C stdin.

Різниця між wcin і cin

cinкористувачі char(вузький символ) як тип символу. Його можна використовувати для символів ASCII та ANSI.

Для інтернаціоналізації нам потрібні рядки Unicode, які не вкладаються char. wcinвикористовує wchar_t(широкий символ) і може використовуватися для символів Unicode.

декларація wcin

 зовнішній вістрим wcin;

Це визначається у файлі заголовка "> файл заголовка.

wcinОб'єкт гарантовано бути ініційовані під час або перед першим об'єктом типу ios_base::Initпобудований. Після wcinпобудови об'єкта wcin.tie()повертається, &wcoutщо означає, що будь-яка відформатована операція введення на wcin змушує викликати, wcout.flush()якщо якісь символи очікують на вихід.

"Wc" у 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 String = програма за допомогою wcin Character = h

Будь обережний

char16_tі char32_t, які були введені в C ++ 11, рекомендується використовувати замість цього, wchar_tоскільки wchar_tце 16 біт для деяких систем та 32 біт для деяких інших. Це ускладнює порт.

Цікаві статті...