Obiekt wcin w C ++ jest obiektem klasy wistream. Służy do akceptacji wejścia ze standardowego urządzenia wejściowego, np. Klawiatury. Jest on powiązany ze standardowym wejściem strumienia C.
Różnica między wcin i cin
cin
użytkownicy char
(wąski znak) jako typ znaku. Może być używany dla znaków ASCII i ANSI.
Do internacjonalizacji potrzebujemy ciągów Unicode, które nie pasują char
. wcin
używa wchar_t
(znak szeroki) i można go używać dla znaków Unicode.
deklaracja wcin
zewnętrznie wistream wcin;
Jest zdefiniowany w pliku nagłówkowym "> plik nagłówkowy.
wcin
Obiektu zapewnia być inicjowane w trakcie lub przed pierwszym obiektem typu ios_base::Init
jest wykonana. Po wcin
skonstruowaniu obiektu wcin.tie()
zwraca, &wcout
co oznacza, że każda sformatowana operacja wejściowa w wcin wymusza wywołanie, wcout.flush()
jeśli jakieś znaki oczekują na wyjście.
„Wc” in wcin
odnosi się do „szerokiego znaku”, a „in” oznacza „wejście”, stąd wcin
oznacza „wejście szerokiego znaku”. wcin
Przedmiot jest stosowane wraz z operatorem ekstrakcji (>>), aby otrzymać strumień znaków. Ogólna składnia to:
wcin >> varName;
Operator ekstrakcji może być użyty więcej niż jeden raz, aby zaakceptować wiele danych wejściowych, takich jak:
wcin >> var1 >> var2 >>… >> varN;
wcin
Obiekt może być również stosowany do innych funkcji składowych, takich jak getline()
, read()
itp Niektóre z powszechnie stosowanych funkcji składowych są następujące:
wcin.get(wchar_t &ch):
Czyta szeroki znak i zapisuje go w rozdz.wcin.getline(wchar_t *buffer, int length):
Odczytuje strumień szerokich znaków do bufora ciągów, zatrzymuje się, gdy- czyta długość znaków - 1 lub
- gdy znajdzie znak końca linii („ n”) lub koniec pliku.
wcin.read(wchar_t *buffer, int n):
Odczytuje n bajtów (lub do końca pliku) ze strumienia do bufora.wcin.ignore(int n):
Ignoruje kolejnych n znaków ze strumienia wejściowego.wcin.eof():
Zwraca wartość różną od zera, jeśli osiągnięto koniec pliku (eof).
Przykład 1: wcin z operatorem ekstrakcji:
#include using namespace std; int main() ( wchar_t word(20); wcout <> word; wcout << word; return 0; )
Po uruchomieniu programu możliwe wyjście to:
Wpisz słowo: kathmandu kathmandu
Przykład 2: wcin z funkcją składową:
#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; )
Po uruchomieniu programu możliwe wyjście to:
Wpisz ciąg: program używając wcin Wpisz znak: h String = program używając wcin Znak = h
Bądź ostrożny
char16_t
i char32_t
, które zostały wprowadzone w C ++ 11, są zalecane zamiast, wchar_t
ponieważ wchar_t
w niektórych systemach są 16-bitowe, aw niektórych 32-bitowe. Utrudnia to przenoszenie.