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
cin
gebruikers 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
. wcin
gebruikt wchar_t
(breed teken) en is bruikbaar voor Unicode-tekens.
wcin verklaring
externe wistream wcin;
Het wordt gedefinieerd in header-bestand "> header-bestand.
Het wcin
object wordt geïnitialiseerd tijdens of vóór de eerste keer dat een object van het type ios_base::Init
wordt geconstrueerd. Nadat het wcin
object is geconstrueerd, wordt wcin.tie()
geretourneerd, &wcout
wat betekent dat elke opgemaakte invoerbewerking op wcin een aanroep afdwingt naar wcout.flush()
eventuele tekens die wachten op uitvoer.
De "wc" in wcin
verwijst naar "breed karakter" en 'in' betekent "invoer", dus wcin
betekent "invoer met brede tekens". Het wcin
object 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 wcin
object 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_t
en char32_t
, die werden geïntroduceerd in C ++ 11, worden aanbevolen om te gebruiken in plaats van wchar_t
omdat het wchar_t
16 bit is op sommige systemen en 32 bit op andere. Dit maakt het moeilijk om te porten.