Wcin-objektet i C ++ är ett objekt av klass wistream. Den används för att acceptera ingången från standardinmatningsenheten, dvs. tangentbordet. Det är associerat med standard C-ingångsströmmen stdin.
Skillnad mellan wcin och cin
cin
användare char
(smalt tecken) som teckentyp. Den kan användas för ASCII- och ANSI-tecken.
För internationalisering behöver vi Unicode-strängar som inte passar in char
. wcin
använder wchar_t
(bred karaktär) och kan användas för Unicode-tecken.
wcin-deklaration
extern wistream wcin;
Det definieras i rubrikfil "> rubrikfil.
Det wcin
ändamål säkerställs att initieras under eller före den första gången ett objekt av typen ios_base::Init
konstrueras. Efter att wcin
objektet har konstruerats, wcin.tie()
returneras &wcout
vilket innebär att alla formaterade ingångsoperationer på wcin tvingar ett samtal till wcout.flush()
om några tecken väntar på att matas ut.
"Wc" i wcin
hänvisar till "wide character" och "in" betyder "input", följaktligen wcin
betyder "wide character input". Det wcin
objekt används tillsammans med utvinning operatör (>>) för att ta emot en ström av tecken. Den allmänna syntaxen är:
wcin >> varName;
Extraktionsoperatören kan användas mer än en gång för att acceptera flera ingångar som:
wcin >> var1 >> var2 >>… >> varN;
Det wcin
objektet kan även användas med andra funktioner medlemmens såsom getline()
, read()
, etc. Några av de vanligen använda medlemsfunktioner är:
wcin.get(wchar_t &ch):
Läser en bred karaktär och lagrar den i kap.wcin.getline(wchar_t *buffer, int length):
Läser en ström av breda tecken i strängbufferten, den stannar när- den har läst längd-1 tecken eller
- när den hittar ett slutet av radtecken (' n') eller slutet på filen.
wcin.read(wchar_t *buffer, int n):
Läser n byte (eller till slutet av filen) från strömmen till bufferten.wcin.ignore(int n):
Ignorerar nästa n tecken från ingångsströmmen.wcin.eof():
Returnerar ett icke-nollvärde om slutet på filen (eof) nås.
Exempel 1: wcin med extraktionsoperatör:
#include using namespace std; int main() ( wchar_t word(20); wcout <> word; wcout << word; return 0; )
När du kör programmet blir en möjlig utdata:
Ange ett ord: kathmandu kathmandu
Exempel 2: wcin med medlemsfunktion:
#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; )
När du kör programmet blir en möjlig utdata:
Ange en sträng: program med wcin Ange ett tecken: h Sträng = program med wcin Tecken = h
Var försiktig
char16_t
och char32_t
som introducerades i C ++ 11 rekommenderas att användas istället för wchar_t
att det wchar_t
är 16 bitar på vissa system och 32 bitar på andra. Detta gör det svårt att hamna.