Namespaces
Variants

std:: cin, std:: wcin

From cppreference.net
< cpp ‎ | io
Definiert im 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 Streampuffer eines implementierungsdefinierten Typs (abgeleitet von std::streambuf ), der mit dem standardmäßigen C-Eingabestrom stdin assoziiert ist.

Diese Objekte sind garantiert während oder vor dem ersten Mal initialisiert, wenn ein Objekt vom Typ std::ios_base::Init konstruiert wird, und sind in den Konstruktoren und Destruktoren von statischen Objekten mit geordneter Initialisierung verfügbar (sofern <iostream> vor der Definition des Objekts eingebunden wird).

Sofern nicht sync_with_stdio ( false ) aufgerufen wurde, ist es sicher, diese Objekte gleichzeitig von mehreren Threads aus für formatierten und unformatierten Eingabe-Zugriff zu verwenden.

Nach der Initialisierung:

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

Hinweise

Das „c“ im Namen steht für „character“ ( stroustrup.com FAQ ); cin bedeutet „character input“ und wcin bedeutet „wide character input“.

Beispiel

#include <iostream>
struct Foo
{
    int n;
    Foo()
    {
        std::cout << "Geben Sie n ein: "; // kein Flush erforderlich
        std::cin >> n;
    }
};
Foo f; // statisches Objekt
int main()
{
    std::cout << "f.n ist " << f.n << '\n';
}

Mögliche Ausgabe:

Enter n: 10
f.n is 10
**Übersetzungserläuterungen:** - "Run this code" → "Diesen Code ausführen" - "Enter n:" → "Geben Sie n ein:" (formelle Anredeform) - "no flush needed" → "kein Flush erforderlich" (technischer Begriff beibehalten) - "static object" → "statisches Objekt" (C++-Terminologie) - "f.n is" → "f.n ist" - "Possible output:" → "Mögliche Ausgabe:" - Der tatsächliche Programmoutput wurde nicht übersetzt, da er zur Laufzeit generiert wird - Alle HTML-Tags, Attribute und Code-Blöcke wurden original belassen

Siehe auch

initialisiert Standard-Stream-Objekte
(öffentliche Mitgliedsklasse von std::ios_base )
schreibt in den standard C-Ausgabestream stdout
(globales Objekt)
Ausdruck vom Typ FILE * assoziiert mit dem Eingabestream
Ausdruck vom Typ FILE * assoziiert mit dem Ausgabestream
Ausdruck vom Typ FILE * assoziiert mit dem Fehlerausgabestream
(Makrokonstante)