web-dev-qa-db-fra.com

Que représente le g dans gcount, tellg and seekg?

Que signifient les g dans les membres de std::iostreamgcount, tellg et seekg? Et le p dans pcount, tellp et seekp?

Pourquoi ne s'appellent-ils pas simplement count, tell et seek?

70
Andrew Tomazos

Dans les flux prenant en charge à la fois la lecture et l’écriture, vous avez en fait deux positions, une pour lire (c’est-à-dire "get" désignée par "g") et une pour écriture (c.-à-d. "Put" désignée par un "p").

Et c'est pourquoi vous avez un seekp (hérité de basic_ostream), et un seekg (hérité de basic_istream).

Note secondaire: Le langage C n’a - contrairement au C++ - qu’une seule de ces fonctions fseek pour les deux pointeurs; Là, il est nécessaire de repositionner le pointeur lors du passage de read à write et vice-versa (cf., par exemple, this answer). Pour éviter cela, C++ propose des fonctions séparées pour la lecture et l’écriture, respectivement.

77
Stephan Lechner

C++ propose deux pointeurs lors de la navigation dans le fichier: le pointeur get ​​et le pointeur put. Le premier est utilisé pour les opérations de lecture, le second pour les opérations d'écriture.

  • seekg() est utilisé pour déplacer le pointeur g et sur un emplacement souhaité par rapport à un point de référence.

  • tellg() est utilisé pour savoir où se trouve le g et le pointeur dans un fichier.

  • seekp() permet de déplacer le pointeur p à un emplacement souhaité par rapport à un point de référence.

  • tellp() est utilisé pour savoir où se trouve le pointeur p ut dans un fichier.

Source principale: Quora , réponse par Gunjan B. Yadav le 1 déc. 2017.

47
Tu.ma