Об'єкт 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 біт для деяких інших. Це ускладнює порт.