Wofür steht das g in gcount, tellg und seekg?


73

Was bedeutet die g Ständer für in std::iostream‚s gcount, tellgund seekgMitgliedern? Und die p in pcount, tellpund seekp?

Warum sind sie nicht gerade angerufen count, tellund seek?


5
seekWenn 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.
Einige Programmierer Typ

1
Übrigens: Die Antworten erklären auch das p. Es kann sinnvoller sein, die Frage für das p zu bearbeiten.
user202729

Antworten:


80

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 fseekfü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.


53

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.


17
Warum benennen C ++ - Standards APIs so, als ob Tastaturen Kosten pro Tastendruck verursachen? 🙄
Alexander - Reinstate Monica

14
@ Alexander: um zu vermeiden, dass Leute per Tastendruck bezahlt werden. Clevere und geschäftsorientierte Programmierer überwinden dieses Problem natürlich, indem sie ihre eigenen Typen und Wrapper für die Standardbibliothek erfinden, was natürlich immer perfekt funktioniert und keinerlei Nachteile hat.
Daniel Kamil Kozar


1
@ Ajay Ich mag es!
Alexander - Reinstate Monica
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.