C ++ wcin - Biblioteka standardowa C ++

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

cinuż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. wcinuż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.

wcinObiektu zapewnia być inicjowane w trakcie lub przed pierwszym obiektem typu ios_base::Initjest wykonana. Po wcinskonstruowaniu obiektu wcin.tie()zwraca, &wcoutco 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 wcinodnosi się do „szerokiego znaku”, a „in” oznacza „wejście”, stąd wcinoznacza „wejście szerokiego znaku”. wcinPrzedmiot 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;

wcinObiekt 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_ti char32_t, które zostały wprowadzone w C ++ 11, są zalecane zamiast, wchar_tponieważ wchar_tw niektórych systemach są 16-bitowe, aw niektórych 32-bitowe. Utrudnia to przenoszenie.

Interesujące artykuły...