Das wcin-Objekt in C ++ ist ein Objekt der Klasse wistream. Es wird verwendet, um die Eingabe vom Standardeingabegerät, dh der Tastatur, zu akzeptieren. Es ist dem Standard-C-Eingabestream stdin zugeordnet.
Unterschied zwischen wcin und cin
cin
Benutzer char
(schmales Zeichen) als Zeichentyp. Es kann für ASCII- und ANSI-Zeichen verwendet werden.
Für die Internationalisierung benötigen wir Unicode-Strings, die nicht passen char
. wcin
verwendet wchar_t
(breites Zeichen) und kann für Unicode-Zeichen verwendet werden.
wcin Erklärung
externer Wistream wcin;
Es ist in der Header-Datei "> Header-Datei definiert.
Es wcin
wird sichergestellt, dass das Objekt während oder vor der ersten ios_base::Init
Erstellung eines Objekttyps initialisiert wird. Nachdem das wcin
Objekt aufgebaut ist, wcin.tie()
kehrt &wcout
das bedeutet , dass jede Betätigungseingabe auf formatiertem WCIN Kräfte ein Aufruf , wcout.flush()
wenn irgendwelche Zeichen für die Ausgabe anstehen.
Das "wc" in wcin
bezieht sich auf "breites Zeichen" und "in" bedeutet "Eingabe", wcin
bedeutet daher "breite Zeicheneingabe". Das wcin
Objekt wird zusammen mit dem Extraktionsoperator (>>) verwendet, um einen Zeichenstrom zu empfangen. Die allgemeine Syntax lautet:
wcin >> varName;
Der Extraktionsoperator kann mehrmals verwendet werden, um mehrere Eingaben zu akzeptieren:
wcin >> var1 >> var2 >>… >> varN;
Das wcin
Objekt kann auch mit anderen Elementfunktionen verwendet werden , wie getline()
, read()
usw. Einige der häufig verwendeten Elementfunktionen sind:
wcin.get(wchar_t &ch):
Liest ein breites Zeichen und speichert es in ch.wcin.getline(wchar_t *buffer, int length):
Liest einen Strom breiter Zeichen in den Zeichenfolgenpuffer. Es stoppt, wenn- es hat Länge-1 Zeichen oder gelesen
- wenn ein Zeilenendezeichen (' n') oder das Dateiende gefunden wird.
wcin.read(wchar_t *buffer, int n):
Liest n Bytes (oder bis zum Ende der Datei) aus dem Stream in den Puffer.wcin.ignore(int n):
Ignoriert die nächsten n Zeichen aus dem Eingabestream.wcin.eof():
Gibt einen Wert ungleich Null zurück, wenn das Dateiende (eof) erreicht ist.
Beispiel 1: wcin mit Extraktionsoperator:
#include using namespace std; int main() ( wchar_t word(20); wcout <> word; wcout << word; return 0; )
Wenn Sie das Programm ausführen, ist eine mögliche Ausgabe:
Geben Sie ein Wort ein: kathmandu kathmandu
Beispiel 2: wcin mit Mitgliedsfunktion:
#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; )
Wenn Sie das Programm ausführen, ist eine mögliche Ausgabe:
Geben Sie eine Zeichenfolge ein: Programm mit wcin Geben Sie ein Zeichen ein: h Zeichenfolge = Programm mit wcin Zeichen = h
Achtung
char16_t
und char32_t
, die in C ++ 11 eingeführt wurden , werden empfohlen , anstelle von verwendet werden , wchar_t
weil wchar_t
16 Bit auf einigen Systemen und 32 Bit auf einem anderen. Dies macht die Portierung schwierig.