Unterschied zwischen basic_istream :: tellg () und basic_ostream :: tlp () [closed]

8

Ich habe mich nur gefragt, warum die Member-Funktionen tellg() , die in basic_istream<> class definiert sind, und tellp() , die in basic_ostream<> definiert sind, unterschiedliche Namen haben. Ist das so, weil basic_fstream<> von basic_istream<> und basic_ostream<> abgeleitet ist?

    
John Kalane 25.01.2013, 12:47
quelle

2 Antworten

4

Und wie würdest du sie in bidirektionalen Streams unterscheiden, wie std::fstream oder std::stringstream ? Streams sind erlaubt separate Zeiger für Eingabe und Ausgabe pflegen: fstream nicht, aber stringstream tut es. Also brauchst du entweder eine Flagge um geben Sie an, welches Sie möchten (wie in streambuf ), oder Sie benötigen zwei separate Funktionen.

    
James Kanze 25.01.2013, 13:48
quelle
5

tellg() erhält die Position des get Zeigers und tellp() erhält die Position des put Zeigers, einer davon ist der Ort, an dem Sie lesen und der zweite - wo Sie in die Datei schreiben. Also machen die zwei Funktionen verschiedene Dinge und geben unterschiedliche Werte zurück. Warum solltest du denken, dass sie denselben Namen haben sollten?

    
Ivaylo Strandjev 25.01.2013 12:51
quelle

Tags und Links