Objekt wcin v C ++ je objektem třídy wistream. Používá se k přijetí vstupu ze standardního vstupního zařízení, tj. Klávesnice. Je spojen se standardním standardním vstupním proudem C.
Rozdíl mezi wcin a cin
cinuživatelé char(úzký znak) jako typ znaku. Lze jej použít pro znaky ASCII a ANSI.
Pro internacionalizaci potřebujeme řetězce Unicode, které se nevejdou char. wcinpoužívá wchar_t(široký znak) a je použitelný pro znaky Unicode.
deklarace wcin
externí wistream wcin;
Je definován v hlavičkovém souboru.
Je wcinzajištěno, že objekt bude inicializován během nebo před prvním vytvořením objektu typu ios_base::Init. Poté, co je wcinobjekt vytvořen, wcin.tie()vrátí, &wcoutcož znamená, že jakákoli formátovaná vstupní operace na wcin vynutí volání, wcout.flush()pokud nějaké znaky čekají na výstup.
„Wc“ in wcinodkazuje na „široký znak“ a „in“ znamená „vstup“, tedy wcinznamená „široký znakový vstup“. wcinObjekt se používá spolu s provozovatelem extrakce (>>) s cílem získat proud znaků. Obecná syntaxe je:
wcin >> varName;
Operátor extrakce lze použít více než jednou k přijetí více vstupů jako:
wcin >> var1 >> var2 >>… >> varN;
wcinObjekt může být také použit s jinými členské funkce, jako je například getline(), read()atd Některé běžně používané členské funkce jsou:
wcin.get(wchar_t &ch):Přečte široký znak a uloží jej do ch.wcin.getline(wchar_t *buffer, int length):Přečte proud širokých znaků do vyrovnávací paměti řetězce, zastaví se, když- má přečtenou délku 1 znaků nebo
- když najde znak konce řádku (' n') nebo konec souboru.
wcin.read(wchar_t *buffer, int n):Přečte n bajtů (nebo do konce souboru) z datového proudu do vyrovnávací paměti.wcin.ignore(int n):Ignoruje dalších n znaků ze vstupního proudu.wcin.eof():Vrátí nenulovou hodnotu, pokud je dosaženo konce souboru (eof).
Příklad 1: wcin s operátorem extrakce:
#include using namespace std; int main() ( wchar_t word(20); wcout <> word; wcout << word; return 0; )
Při spuštění programu bude možný výstup:
Zadejte slovo: kathmandu kathmandu
Příklad 2: wcin s členskou funkcí:
#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; )
Při spuštění programu bude možný výstup:
Zadejte řetězec: program pomocí wcin Zadejte znak: h String = program pomocí wcin Character = h
Buď opatrný
char16_ta char32_tkteré byly zavedeny v C ++ 11, se doporučuje použít místo toho, wchar_tprotože wchar_tna některých systémech je 16 bitů a na jiných 32 bitů. To ztěžuje portování.








