C ++ objekt wcin on klassi wistream objekt. Seda kasutatakse sisendi vastuvõtmiseks tavalisest sisendseadmest, st klaviatuurilt. See on seotud standardse C sisendvoo stdiniga.
Erinevus wcin ja cin vahel
cin
kasutajad char
(kitsas märk) märgitüübina. Seda saab kasutada ASCII ja ANSI tähemärkide jaoks.
Rahvusvahelistumiseks vajame Unicode'i stringe, mis ei sobi char
. wcin
kasutab wchar_t
(lai tähemärk) ja on kasutatav Unicode'i tähemärkide jaoks.
wcini deklaratsioon
välimine wistream wcin;
See on määratletud päisefailis "> päisefail.
wcin
On kindlustatud lähtestada ajal või enne esimest korda objekti tüübiga ios_base::Init
on ehitatud. Pärast wcin
objekti konstrueerimist wcin.tie()
tagastatakse, &wcout
mis tähendab, et mis tahes vormindatud sisendoperatsioon wcinil sunnib helistama, wcout.flush()
kui mõni märk on väljundis ootel.
"Wc" wcin
tähistab "laia märki" ja "in" tähendab "sisendit", seega wcin
tähendab "laia tähemärgi sisendit". wcin
Objekti kasutatakse koos kaevandamise operaator (>>), et saada märgijada. Üldine süntaks on:
wcin >> varName;
Ekstraheerimisoperaatorit saab kasutada mitme sisendi aktsepteerimiseks mitu korda:
wcin >> var1 >> var2 >>… >> varN;
wcin
Objekti saab kasutada ka teiste liige funktsioone nagu getline()
, read()
jne Mõned levinud liige funktsioonid:
wcin.get(wchar_t &ch):
Loeb laia märki ja salvestab selle ptk-sse.wcin.getline(wchar_t *buffer, int length):
Loeb laia märkide voo stringi puhvrisse, see peatub, kui- see on lugenud pikkusega 1 tähemärki või
- kui ta leiab rea lõpu märgi (' n') või faili lõpu.
wcin.read(wchar_t *buffer, int n):
Loeb voost puhvrisse n-i baiti (või faili lõpuni).wcin.ignore(int n):
Eirab sisendvoo järgmist n tähemärki.wcin.eof():
Tagastab nulli väärtuse, kui on saavutatud faili lõpp (eof).
Näide 1: wcin ekstraheerimise operaatoriga:
#include using namespace std; int main() ( wchar_t word(20); wcout <> word; wcout << word; return 0; )
Programmi käivitamisel on võimalik väljund:
Sisestage sõna: kathmandu kathmandu
Näide 2: wcin koos liikme funktsiooniga:
#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; )
Programmi käivitamisel on võimalik väljund:
Sisestage string: programm wciniga. Sisestage märk: h String = programm wcin Character = h abil
Ole ettevaatlik
char16_t
ja char32_t
, mis võeti kasutusele versioonis C ++ 11, soovitatakse kasutada selle asemel, wchar_t
et wchar_t
mõnes süsteemis on see 16-bitine ja mõnes teises 32-bitine. See teeb portimise keeruliseks.