C ++ wcin - standardní knihovna C ++

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í.

Zajímavé články...