Was bedeutet die g Ständer für in std::iostream
‚s gcount
, tellg
und seekg
Mitgliedern? Und die p in pcount
, tellp
und seekp
?
Warum sind sie nicht gerade angerufen count
, tell
und seek
?
Was bedeutet die g Ständer für in std::iostream
‚s gcount
, tellg
und seekg
Mitgliedern? Und die p in pcount
, tellp
und seekp
?
Warum sind sie nicht gerade angerufen count
, tell
und seek
?
Antworten:
In Streams, die sowohl Lesen als auch Schreiben unterstützen, haben Sie tatsächlich zwei Positionen, eine zum Lesen (dh "get" bezeichnet mit "g") und eine zum Schreiben (dh "put" bezeichnet mit einem "p").
Und deshalb haben Sie ein seekp
(geerbt von basic_ostream
) und ein seekg
(geerbt von basic_istream
).
Randnotiz: Die Sprache C hat - im Gegensatz zu C ++ - nur eine solche Funktion fseek
für beide Zeiger; Dort muss der Zeiger beim Wechsel von Lesen zu Schreiben und umgekehrt neu positioniert werden (vgl. Beispielsweise diese Antwort). Um dies zu vermeiden, bietet C ++ separate Funktionen zum Lesen bzw. Schreiben.
C ++ bietet beim Navigieren in der Datei zwei Zeiger: den get- Zeiger und den put- Zeiger. Der erste wird für Leseoperationen verwendet, der zweite für Schreiboperationen.
seekg()
wird verwendet, um den g et-Zeiger in Bezug auf einen Referenzpunkt an eine gewünschte Stelle zu bewegen .
tellg()
wird verwendet, um zu wissen, wo sich der g et-Zeiger in einer Datei befindet.
seekp()
wird verwendet, um den P ut-Zeiger in Bezug auf einen Referenzpunkt an eine gewünschte Stelle zu bewegen .
tellp()
wird verwendet, um zu wissen, wo sich der P ut-Zeiger in einer Datei befindet.
Hauptquelle: Quora , Antwort von Gunjan B. Yadav am 1. Dezember 2017.
seek
Wenn es zum Beispiel nur einfach genannt wurde , können Sie keine separaten Zeiger für die Eingabe- und Ausgabeteile eines kombinierten Eingabe- und Ausgabestreams haben.