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
cin
už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
. wcin
použí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 wcin
zajiš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 wcin
objekt vytvořen, wcin.tie()
vrátí, &wcout
což 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 wcin
odkazuje na „široký znak“ a „in“ znamená „vstup“, tedy wcin
znamená „široký znakový vstup“. wcin
Objekt 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;
wcin
Objekt 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_t
a char32_t
které byly zavedeny v C ++ 11, se doporučuje použít místo toho, wchar_t
protože wchar_t
na některých systémech je 16 bitů a na jiných 32 bitů. To ztěžuje portování.