L'oggetto wcin in C ++ è un oggetto della classe wistream. Viene utilizzato per accettare l'input dal dispositivo di input standard, ovvero la tastiera. È associato allo standard C input stream stdin.
Differenza tra wcin e cin
cin
utenti char
(carattere stretto) come tipo di carattere. Può essere utilizzato per i caratteri ASCII e ANSI.
Per l'internazionalizzazione, abbiamo bisogno di stringhe Unicode che non si adattano char
. wcin
utilizza wchar_t
(carattere ampio) ed è utilizzabile per i caratteri Unicode.
dichiarazione wcin
wcin wistream esterno;
È definito nel file di intestazione "> file di intestazione.
Si wcin
garantisce che l' oggetto venga inizializzato durante o prima della prima costruzione di un oggetto di tipo ios_base::Init
. Dopo che l' wcin
oggetto è stato costruito, wcin.tie()
restituisce il &wcout
che significa che qualsiasi operazione di input formattata su wcin forza una chiamata a wcout.flush()
se ci sono caratteri in sospeso per l'output.
Il "wc" in si wcin
riferisce a "carattere ampio" e "in" significa "input", quindi wcin
significa "input di carattere ampio". L' wcin
oggetto viene utilizzato insieme all'operatore di estrazione (>>) per ricevere un flusso di caratteri. La sintassi generale è:
wcin >> varName;
L'operatore di estrazione può essere utilizzato più di una volta per accettare più input come:
wcin >> var1 >> var2 >>… >> varN;
L' wcin
oggetto può essere utilizzato anche con altri funzioni membro come getline()
, read()
ecc Alcune delle funzioni membro comunemente utilizzati sono:
wcin.get(wchar_t &ch):
Legge un carattere ampio e lo memorizza nel cap.wcin.getline(wchar_t *buffer, int length):
Legge un flusso di caratteri larghi nel buffer delle stringhe, si ferma quando- ha letto 1 caratteri di lunghezza o
- quando trova un carattere di fine riga (' n') o la fine del file.
wcin.read(wchar_t *buffer, int n):
Legge n byte (o fino alla fine del file) dal flusso nel buffer.wcin.ignore(int n):
Ignora i successivi n caratteri dal flusso di input.wcin.eof():
Restituisce un valore diverso da zero se viene raggiunta la fine del file (eof).
Esempio 1: wcin con operatore di estrazione:
#include using namespace std; int main() ( wchar_t word(20); wcout <> word; wcout << word; return 0; )
Quando esegui il programma, un possibile output sarà:
Immettere una parola: kathmandu kathmandu
Esempio 2: wcin con funzione membro:
#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; )
Quando esegui il programma, un possibile output sarà:
Immettere una stringa: programma che utilizza wcin Immettere un carattere: h Stringa = programma che utilizza wcin Carattere = h
Stai attento
char16_t
e char32_t
, che sono stati introdotti in C ++ 11, si consiglia di utilizzare invece di wchar_t
perché wchar_t
è a 16 bit su alcuni sistemi e 32 bit su altri. Ciò rende difficile il porting.