std::basic_istream<CharT,Traits>:: get
|
int_type get
(
)
;
|
(1) | |
|
basic_istream
&
get
(
char_type
&
ch
)
;
|
(2) | |
|
basic_istream
&
get
(
char_type
*
s,
std::
streamsize
count
)
;
|
(3) | |
|
basic_istream
&
get
(
char_type
*
s,
std::
streamsize
count, char_type delim
)
;
|
(4) | |
|
basic_istream
&
get
(
basic_streambuf
&
strbuf
)
;
|
(5) | |
|
basic_istream
&
get
(
basic_streambuf
&
strbuf, char_type delim
)
;
|
(6) | |
Extrahiert Zeichen oder Zeichenfolgen aus dem Stream.
Alle Versionen verhalten sich als UnformattedInputFunction s . Nach dem Konstruieren und Überprüfen des Sentry-Objekts führen diese Funktionen Folgendes aus:
- count kleiner als 1 ist oder count - 1 Zeichen gespeichert wurden.
- Eine End-of-File-Bedingung in der Eingabesequenz auftritt ( setstate ( eofbit ) wird aufgerufen).
-
Das nächste verfügbare Eingabezeichen
c
gleich
delim
ist, wie durch
Traits
::
eq
(
c, delim
)
bestimmt. Dieses Zeichen wird nicht extrahiert (im Gegensatz zu
getline()).
- Ein End-of-File-Zustand tritt in der Eingabesequenz auf.
- Das Einfügen in die Ausgabesequenz schlägt fehl (in diesem Fall wird das Zeichen, das nicht eingefügt werden konnte, nicht extrahiert).
- Das nächste verfügbare Eingabezeichen c gleich delim ist, wie durch Traits :: eq ( c, delim ) bestimmt. Dieses Zeichen wird nicht extrahiert.
- Eine Ausnahme auftritt (in diesem Fall wird die Ausnahme abgefangen und nicht erneut ausgelöst).
Wenn keine Zeichen extrahiert wurden, ruft setstate ( failbit ) auf.
Alle Versionen setzen den Wert von gcount() auf die Anzahl der extrahierten Zeichen.
Inhaltsverzeichnis |
Parameter
| ch | - | Referenz auf das Zeichen, in das das Ergebnis geschrieben wird |
| s | - | Zeiger auf die Zeichenkette, in der die Zeichen gespeichert werden |
| count | - | Größe der Zeichenkette, auf die s zeigt |
| delim | - | Begrenzungszeichen, bei dem die Extraktion stoppt. Es wird nicht extrahiert und nicht gespeichert |
| strbuf | - | Streampuffer, in den der Inhalt gelesen wird |
Rückgabewert
Exceptions
Wenn eine interne Operation eine Ausnahme auslöst, wird diese abgefangen und
badbit
wird gesetzt. Wenn
exceptions()
für
badbit
gesetzt ist, wird die Ausnahme erneut ausgelöst.
Beispiel
#include <iostream> #include <sstream> int main() { std::istringstream s1("Hello, world."); char c1 = s1.get(); // liest 'H' std::cout << "after reading " << c1 << ", gcount() == " << s1.gcount() << '\n'; char c2; s1.get(c2); // liest 'e' char str[5]; s1.get(str, 5); // liest "llo," std::cout << "after reading " << str << ", gcount() == " << s1.gcount() << '\n'; std::cout << c1 << c2 << str; s1.get(*std::cout.rdbuf()); // liest den Rest, ohne '\n' std::cout << "\nAfter the last get(), gcount() == " << s1.gcount() << '\n'; }
Ausgabe:
after reading H, gcount() == 1 after reading llo,, gcount() == 4 Hello, world. After the last get(), gcount() == 7
Fehlerberichte
Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | Angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| LWG 370 | C++98 |
die Wirkung der Überladung
(5)
war
get
(
s, count, widen
(
'
\n
'
)
)
,
was der Wirkung der Überladung (3) entspricht |
korrigiert zu
get ( strbuf, widen ( ' \n ' ) ) |
| LWG 531 | C++98 |
Überladungen
(3,4)
konnten den Fall nicht
behandeln, in dem count nicht-positiv ist |
in diesem Fall wird kein
Zeichen extrahiert |
Siehe auch
|
extrahiert Blöcke von Zeichen
(öffentliche Elementfunktion) |
|
|
extrahiert formatierte Daten
(öffentliche Elementfunktion) |
|
|
extrahiert Zeichen und Zeichenarrays
(Funktionstemplate) |