L'objet wcin en C ++ est un objet de la classe wistream. Il est utilisé pour accepter l'entrée du périphérique d'entrée standard, c'est-à-dire le clavier. Il est associé au flux d'entrée standard C stdin.
Différence entre wcin et cin
cin
utilisateurs char
(caractère étroit) comme type de caractère. Il peut être utilisé pour les caractères ASCII et ANSI.
Pour l'internationalisation, nous avons besoin de chaînes Unicode qui ne correspondent pas char
. wcin
utilise wchar_t
(caractère large) et est utilisable pour les caractères Unicode.
déclaration wcin
extern wistream wcin;
Il est défini dans le fichier d'en-tête "> fichier d'en-tête.
L' wcin
objet est assuré d'être initialisé pendant ou avant la première construction d'un objet de type ios_base::Init
. Une fois l' wcin
objet construit, wcin.tie()
renvoie &wcout
ce qui signifie que toute opération d'entrée formatée sur wcin force un appel à wcout.flush()
si des caractères sont en attente de sortie.
Le "wc" dans se wcin
réfère à "caractère large" et "in" signifie "entrée", donc wcin
signifie "entrée de caractère large". L' wcin
objet est utilisé avec l'opérateur d'extraction (>>) pour recevoir un flux de caractères. La syntaxe générale est:
wcin >> varName;
L'opérateur d'extraction peut être utilisé plus d'une fois pour accepter plusieurs entrées comme:
wcin >> var1 >> var2 >>… >> varN;
L' wcin
objet peut également être utilisé avec d' autres fonctions membres tels que getline()
, read()
, etc. Certaines fonctions membres couramment utilisées sont les suivantes :
wcin.get(wchar_t &ch):
Lit un caractère large et le stocke dans le ch.wcin.getline(wchar_t *buffer, int length):
Lit un flux de caractères larges dans le tampon de chaîne, il s'arrête lorsque- il a lu des caractères de longueur 1 ou
- lorsqu'il trouve un caractère de fin de ligne (' n') ou la fin du fichier.
wcin.read(wchar_t *buffer, int n):
Lit n octets (ou jusqu'à la fin du fichier) du flux dans le tampon.wcin.ignore(int n):
Ignore les n caractères suivants du flux d'entrée.wcin.eof():
Renvoie une valeur différente de zéro si la fin du fichier (eof) est atteinte.
Exemple 1: wcin avec opérateur d'extraction:
#include using namespace std; int main() ( wchar_t word(20); wcout <> word; wcout << word; return 0; )
Lorsque vous exécutez le programme, une sortie possible sera:
Entrez un mot: kathmandu kathmandu
Exemple 2: wcin avec fonction membre:
#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; )
Lorsque vous exécutez le programme, une sortie possible sera:
Entrez une chaîne: programme utilisant wcin Entrez un caractère: h Chaîne = programme utilisant wcin Caractère = h
Faites attention
char16_t
et char32_t
, qui ont été introduits dans C ++ 11 sont recommandés pour être utilisés à la place de wchar_t
parce qu'il wchar_t
est 16 bits sur certains systèmes et 32 bits sur d'autres. Cela rend difficile le portage.