C ++ wcin - C ++ Standard Library

Het wcin-object in C ++ is een object van class wistream. Het wordt gebruikt om de invoer van het standaard invoerapparaat, dwz het toetsenbord, te accepteren. Het wordt geassocieerd met de standaard C-invoerstroom stdin.

Verschil tussen wcin en cin

cingebruikers char(smal teken) als tekentype. Het kan worden gebruikt voor ASCII- en ANSI-tekens.

Voor internationalisering hebben we Unicode-strings nodig die er niet in passen char. wcingebruikt wchar_t(breed teken) en is bruikbaar voor Unicode-tekens.

wcin verklaring

 externe wistream wcin;

Het wordt gedefinieerd in header-bestand "> header-bestand.

Het wcinobject wordt geïnitialiseerd tijdens of vóór de eerste keer dat een object van het type ios_base::Initwordt geconstrueerd. Nadat het wcinobject is geconstrueerd, wordt wcin.tie()geretourneerd, &wcoutwat betekent dat elke opgemaakte invoerbewerking op wcin een aanroep afdwingt naar wcout.flush()eventuele tekens die wachten op uitvoer.

De "wc" in wcinverwijst naar "breed karakter" en 'in' betekent "invoer", dus wcinbetekent "invoer met brede tekens". Het wcinobject wordt samen met de extractie-operator (>>) gebruikt om een ​​stroom tekens te ontvangen. De algemene syntaxis is:

 wcin >> varName;

De extractie-operator kan meerdere keren worden gebruikt om meerdere invoer te accepteren, zoals:

 wcin >> var1 >> var2 >>… >> varN;

Het wcinobject kan ook worden gebruikt met andere lidfuncties zoals getline(), read()etc. Voor de veelgebruikte lidfuncties zijn:

  • wcin.get(wchar_t &ch): Leest een breed teken en slaat het op in ch.
  • wcin.getline(wchar_t *buffer, int length): Leest een stroom brede tekens in de tekenreeksbuffer. Het stopt wanneer
    • het heeft lengte-1 tekens gelezen of
    • wanneer het een teken aan het einde van de regel (' n') of het einde van het bestand vindt.
  • wcin.read(wchar_t *buffer, int n): Leest n bytes (of tot het einde van het bestand) van de stream naar de buffer.
  • wcin.ignore(int n): Negeert de volgende n tekens uit de invoerstroom.
  • wcin.eof(): Geeft een niet-nulwaarde terug als het einde van het bestand (eof) is bereikt.

Voorbeeld 1: wcin met extractie-operator:

 #include using namespace std; int main() ( wchar_t word(20); wcout <> word; wcout << word; return 0; )

Wanneer u het programma uitvoert, is een mogelijke uitvoer:

 Voer een woord in: kathmandu kathmandu

Voorbeeld 2: wcin met lidfunctie:

 #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; )

Wanneer u het programma uitvoert, is een mogelijke uitvoer:

 Voer een tekenreeks in: programma met wcin Voer een teken in: h Tekenreeks = programma met behulp van wcin Teken = h

Doe voorzichtig

char16_ten char32_t, die werden geïntroduceerd in C ++ 11, worden aanbevolen om te gebruiken in plaats van wchar_tomdat het wchar_t16 bit is op sommige systemen en 32 bit op andere. Dit maakt het moeilijk om te porten.

Interessante artikelen...