Namensräume
Varianten
Aktionen

std::cin, std::wcin

Von cppreference.com
< cpp‎ | io
 
 
 
 
Definiert in Header <iostream>
extern std::istream cin;
(1)
extern std::wistream wcin;
(2)

Die globalen Objekte std::cin und std::wcin steuern die Eingabe von einem Stream-Puffer eines implementierungsdefinierten Typs (abgeleitet von std::streambuf), der mit dem standardmäßigen C-Eingabestrom stdin verbunden ist.

Es wird garantiert, dass diese Objekte während oder vor der ersten Konstruktion eines Objekts vom Typ std::ios_base::Init initialisiert werden und für die Verwendung in den Konstruktoren und Destruktoren von statischen Objekten mit geordneter Initialisierung verfügbar sind (solange <iostream> vor der Definition des Objekts inkludiert wird).

Sofern nicht sync_with_stdio(false) aufgerufen wurde, ist es sicher, von mehreren Threads gleichzeitig auf diese Objekte für formatierte und unformatierte Eingaben zuzugreifen.

Nach der Initialisierung

1) std::cin.tie() gibt &std::cout zurück. Das bedeutet, dass jede Eingabeoperation auf std::cin einen Aufruf von std::cout.flush() erzwingt, wenn noch Zeichen für die Ausgabe anstehen.
2) std::wcin.tie() gibt &std::wcout zurück. Das bedeutet, dass jede Eingabeoperation auf std::wcin einen Aufruf von std::wcout.flush() erzwingt, wenn noch Zeichen für die Ausgabe anstehen.

[bearbeiten] Hinweise

Das "c" im Namen steht für "character" (Zeichen) (stroustrup.com FAQ); cin bedeutet "character input" (Zeicheneingabe) und wcin bedeutet "wide character input" (Breitzeicheneingabe).

[bearbeiten] Beispiel

#include <iostream>
 
struct Foo
{
    int n;
    Foo()
    {
        std::cout << "Enter n: "; // no flush needed
        std::cin >> n;
    }
};
 
Foo f; // static object
 
int main()
{
    std::cout << "f.n is " << f.n << '\n';
}

Mögliche Ausgabe

Enter n: 10
f.n is 10

[bearbeiten] Siehe auch

initialisiert Standard-Stream-Objekte
(public member class of std::ios_base) [bearbeiten]
schreibt in den Standard-C-Ausgabestrom stdout
(globales Objekt)[bearbeiten]
Ausdruck vom Typ FILE*, der dem Eingabestrom zugeordnet ist
Ausdruck vom Typ FILE*, der dem Ausgabestrom zugeordnet ist
Ausdruck vom Typ FILE*, der dem Fehlerstrom zugeordnet ist
(Makrokonstante) [bearbeiten]