C ++ wcin - Bibliothèque standard C ++

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

cinutilisateurs 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. wcinutilise 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' wcinobjet est assuré d'être initialisé pendant ou avant la première construction d'un objet de type ios_base::Init. Une fois l' wcinobjet construit, wcin.tie()renvoie &wcoutce 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 wcinréfère à "caractère large" et "in" signifie "entrée", donc wcinsignifie "entrée de caractère large". L' wcinobjet 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' wcinobjet 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_tet char32_t, qui ont été introduits dans C ++ 11 sont recommandés pour être utilisés à la place de wchar_tparce qu'il wchar_test 16 bits sur certains systèmes et 32 ​​bits sur d'autres. Cela rend difficile le portage.

Articles intéressants...