What does the g stand for in gcount, tellg and seekg?











up vote
48
down vote

favorite
5












What does the g stand for in std::iostream's gcount, tellg and seekg members? And the p in pcount, tellp and seekp?



Why aren't they called just count, tell and seek?










share|improve this question




















  • 5




    It it was called only plain seek (for example), then you can't have separate pointers for the input and output parts of a combined input-and-output stream.
    – Some programmer dude
    yesterday












  • By the way: The answers explain the p too. It may be more useful to edit the question for the p.
    – user202729
    yesterday















up vote
48
down vote

favorite
5












What does the g stand for in std::iostream's gcount, tellg and seekg members? And the p in pcount, tellp and seekp?



Why aren't they called just count, tell and seek?










share|improve this question




















  • 5




    It it was called only plain seek (for example), then you can't have separate pointers for the input and output parts of a combined input-and-output stream.
    – Some programmer dude
    yesterday












  • By the way: The answers explain the p too. It may be more useful to edit the question for the p.
    – user202729
    yesterday













up vote
48
down vote

favorite
5









up vote
48
down vote

favorite
5






5





What does the g stand for in std::iostream's gcount, tellg and seekg members? And the p in pcount, tellp and seekp?



Why aren't they called just count, tell and seek?










share|improve this question















What does the g stand for in std::iostream's gcount, tellg and seekg members? And the p in pcount, tellp and seekp?



Why aren't they called just count, tell and seek?







c++ iostream






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 13 hours ago









Tu.ma

768218




768218










asked yesterday









Andrew Tomazos

34.7k25131224




34.7k25131224








  • 5




    It it was called only plain seek (for example), then you can't have separate pointers for the input and output parts of a combined input-and-output stream.
    – Some programmer dude
    yesterday












  • By the way: The answers explain the p too. It may be more useful to edit the question for the p.
    – user202729
    yesterday














  • 5




    It it was called only plain seek (for example), then you can't have separate pointers for the input and output parts of a combined input-and-output stream.
    – Some programmer dude
    yesterday












  • By the way: The answers explain the p too. It may be more useful to edit the question for the p.
    – user202729
    yesterday








5




5




It it was called only plain seek (for example), then you can't have separate pointers for the input and output parts of a combined input-and-output stream.
– Some programmer dude
yesterday






It it was called only plain seek (for example), then you can't have separate pointers for the input and output parts of a combined input-and-output stream.
– Some programmer dude
yesterday














By the way: The answers explain the p too. It may be more useful to edit the question for the p.
– user202729
yesterday




By the way: The answers explain the p too. It may be more useful to edit the question for the p.
– user202729
yesterday












2 Answers
2






active

oldest

votes

















up vote
65
down vote













In streams supporting both read and write, you actually have two positions, one for read (i.e. "get" denoted by "g") and one for write (i.e. "put" denoted by a "p").



And that's why you have a seekp (inherited from basic_ostream), and a seekg (inherited from basic_istream).



Side note: The language C has - in contrast to C++ - only one such function fseek for both pointers; There it is necessary to re-position the pointer when switching from read to write and vice versa (cf., for example, this answer). To avoid this, C++ offers separate functions for read and write, respectively.






share|improve this answer






























    up vote
    44
    down vote













    C++ offers two pointers while navigating the file: the get pointer and the put pointer. The first one is used for read operations, the second one for write operations.





    • seekg() is used to move the get pointer to a desired location with respect to a reference point.


    • tellg() is used to know where the get pointer is in a file.


    • seekp() is used to move the put pointer to a desired location with respect to a reference point.


    • tellp() is used to know where the put pointer is in a file.





    Main source: Quora, answer by Gunjan B. Yadav on Dec 1, 2017.






    share|improve this answer



















    • 8




      Why do C++ standards people name APIs as if keyboards have per-keystroke costs. 🙄
      – Alexander
      yesterday








    • 8




      @Alexander : to avoid people getting paid by keystroke, obviously. Clever and business-oriented programmers naturally overcome this problem by inventing their own types and wrappers for the standard library, which of course always works out perfectly and has no disadvantages whatsoever.
      – Daniel Kamil Kozar
      yesterday










    • @DanielKamilKozar Haha, I had a good chuckle.
      – Alexander
      yesterday










    • @Alexander en.cppreference.com/w/cpp/chrono/high_resolution_clock
      – Ajay
      18 hours ago












    • @Ajay I like it!
      – Alexander
      7 hours ago











    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53608590%2fwhat-does-the-g-stand-for-in-gcount-tellg-and-seekg%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    2 Answers
    2






    active

    oldest

    votes








    2 Answers
    2






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    65
    down vote













    In streams supporting both read and write, you actually have two positions, one for read (i.e. "get" denoted by "g") and one for write (i.e. "put" denoted by a "p").



    And that's why you have a seekp (inherited from basic_ostream), and a seekg (inherited from basic_istream).



    Side note: The language C has - in contrast to C++ - only one such function fseek for both pointers; There it is necessary to re-position the pointer when switching from read to write and vice versa (cf., for example, this answer). To avoid this, C++ offers separate functions for read and write, respectively.






    share|improve this answer



























      up vote
      65
      down vote













      In streams supporting both read and write, you actually have two positions, one for read (i.e. "get" denoted by "g") and one for write (i.e. "put" denoted by a "p").



      And that's why you have a seekp (inherited from basic_ostream), and a seekg (inherited from basic_istream).



      Side note: The language C has - in contrast to C++ - only one such function fseek for both pointers; There it is necessary to re-position the pointer when switching from read to write and vice versa (cf., for example, this answer). To avoid this, C++ offers separate functions for read and write, respectively.






      share|improve this answer

























        up vote
        65
        down vote










        up vote
        65
        down vote









        In streams supporting both read and write, you actually have two positions, one for read (i.e. "get" denoted by "g") and one for write (i.e. "put" denoted by a "p").



        And that's why you have a seekp (inherited from basic_ostream), and a seekg (inherited from basic_istream).



        Side note: The language C has - in contrast to C++ - only one such function fseek for both pointers; There it is necessary to re-position the pointer when switching from read to write and vice versa (cf., for example, this answer). To avoid this, C++ offers separate functions for read and write, respectively.






        share|improve this answer














        In streams supporting both read and write, you actually have two positions, one for read (i.e. "get" denoted by "g") and one for write (i.e. "put" denoted by a "p").



        And that's why you have a seekp (inherited from basic_ostream), and a seekg (inherited from basic_istream).



        Side note: The language C has - in contrast to C++ - only one such function fseek for both pointers; There it is necessary to re-position the pointer when switching from read to write and vice versa (cf., for example, this answer). To avoid this, C++ offers separate functions for read and write, respectively.







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited 19 hours ago









        Alex Taylor

        5,39021533




        5,39021533










        answered yesterday









        Stephan Lechner

        25k21839




        25k21839
























            up vote
            44
            down vote













            C++ offers two pointers while navigating the file: the get pointer and the put pointer. The first one is used for read operations, the second one for write operations.





            • seekg() is used to move the get pointer to a desired location with respect to a reference point.


            • tellg() is used to know where the get pointer is in a file.


            • seekp() is used to move the put pointer to a desired location with respect to a reference point.


            • tellp() is used to know where the put pointer is in a file.





            Main source: Quora, answer by Gunjan B. Yadav on Dec 1, 2017.






            share|improve this answer



















            • 8




              Why do C++ standards people name APIs as if keyboards have per-keystroke costs. 🙄
              – Alexander
              yesterday








            • 8




              @Alexander : to avoid people getting paid by keystroke, obviously. Clever and business-oriented programmers naturally overcome this problem by inventing their own types and wrappers for the standard library, which of course always works out perfectly and has no disadvantages whatsoever.
              – Daniel Kamil Kozar
              yesterday










            • @DanielKamilKozar Haha, I had a good chuckle.
              – Alexander
              yesterday










            • @Alexander en.cppreference.com/w/cpp/chrono/high_resolution_clock
              – Ajay
              18 hours ago












            • @Ajay I like it!
              – Alexander
              7 hours ago















            up vote
            44
            down vote













            C++ offers two pointers while navigating the file: the get pointer and the put pointer. The first one is used for read operations, the second one for write operations.





            • seekg() is used to move the get pointer to a desired location with respect to a reference point.


            • tellg() is used to know where the get pointer is in a file.


            • seekp() is used to move the put pointer to a desired location with respect to a reference point.


            • tellp() is used to know where the put pointer is in a file.





            Main source: Quora, answer by Gunjan B. Yadav on Dec 1, 2017.






            share|improve this answer



















            • 8




              Why do C++ standards people name APIs as if keyboards have per-keystroke costs. 🙄
              – Alexander
              yesterday








            • 8




              @Alexander : to avoid people getting paid by keystroke, obviously. Clever and business-oriented programmers naturally overcome this problem by inventing their own types and wrappers for the standard library, which of course always works out perfectly and has no disadvantages whatsoever.
              – Daniel Kamil Kozar
              yesterday










            • @DanielKamilKozar Haha, I had a good chuckle.
              – Alexander
              yesterday










            • @Alexander en.cppreference.com/w/cpp/chrono/high_resolution_clock
              – Ajay
              18 hours ago












            • @Ajay I like it!
              – Alexander
              7 hours ago













            up vote
            44
            down vote










            up vote
            44
            down vote









            C++ offers two pointers while navigating the file: the get pointer and the put pointer. The first one is used for read operations, the second one for write operations.





            • seekg() is used to move the get pointer to a desired location with respect to a reference point.


            • tellg() is used to know where the get pointer is in a file.


            • seekp() is used to move the put pointer to a desired location with respect to a reference point.


            • tellp() is used to know where the put pointer is in a file.





            Main source: Quora, answer by Gunjan B. Yadav on Dec 1, 2017.






            share|improve this answer














            C++ offers two pointers while navigating the file: the get pointer and the put pointer. The first one is used for read operations, the second one for write operations.





            • seekg() is used to move the get pointer to a desired location with respect to a reference point.


            • tellg() is used to know where the get pointer is in a file.


            • seekp() is used to move the put pointer to a desired location with respect to a reference point.


            • tellp() is used to know where the put pointer is in a file.





            Main source: Quora, answer by Gunjan B. Yadav on Dec 1, 2017.







            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited yesterday









            Rakete1111

            33.9k980116




            33.9k980116










            answered yesterday









            Tu.ma

            768218




            768218








            • 8




              Why do C++ standards people name APIs as if keyboards have per-keystroke costs. 🙄
              – Alexander
              yesterday








            • 8




              @Alexander : to avoid people getting paid by keystroke, obviously. Clever and business-oriented programmers naturally overcome this problem by inventing their own types and wrappers for the standard library, which of course always works out perfectly and has no disadvantages whatsoever.
              – Daniel Kamil Kozar
              yesterday










            • @DanielKamilKozar Haha, I had a good chuckle.
              – Alexander
              yesterday










            • @Alexander en.cppreference.com/w/cpp/chrono/high_resolution_clock
              – Ajay
              18 hours ago












            • @Ajay I like it!
              – Alexander
              7 hours ago














            • 8




              Why do C++ standards people name APIs as if keyboards have per-keystroke costs. 🙄
              – Alexander
              yesterday








            • 8




              @Alexander : to avoid people getting paid by keystroke, obviously. Clever and business-oriented programmers naturally overcome this problem by inventing their own types and wrappers for the standard library, which of course always works out perfectly and has no disadvantages whatsoever.
              – Daniel Kamil Kozar
              yesterday










            • @DanielKamilKozar Haha, I had a good chuckle.
              – Alexander
              yesterday










            • @Alexander en.cppreference.com/w/cpp/chrono/high_resolution_clock
              – Ajay
              18 hours ago












            • @Ajay I like it!
              – Alexander
              7 hours ago








            8




            8




            Why do C++ standards people name APIs as if keyboards have per-keystroke costs. 🙄
            – Alexander
            yesterday






            Why do C++ standards people name APIs as if keyboards have per-keystroke costs. 🙄
            – Alexander
            yesterday






            8




            8




            @Alexander : to avoid people getting paid by keystroke, obviously. Clever and business-oriented programmers naturally overcome this problem by inventing their own types and wrappers for the standard library, which of course always works out perfectly and has no disadvantages whatsoever.
            – Daniel Kamil Kozar
            yesterday




            @Alexander : to avoid people getting paid by keystroke, obviously. Clever and business-oriented programmers naturally overcome this problem by inventing their own types and wrappers for the standard library, which of course always works out perfectly and has no disadvantages whatsoever.
            – Daniel Kamil Kozar
            yesterday












            @DanielKamilKozar Haha, I had a good chuckle.
            – Alexander
            yesterday




            @DanielKamilKozar Haha, I had a good chuckle.
            – Alexander
            yesterday












            @Alexander en.cppreference.com/w/cpp/chrono/high_resolution_clock
            – Ajay
            18 hours ago






            @Alexander en.cppreference.com/w/cpp/chrono/high_resolution_clock
            – Ajay
            18 hours ago














            @Ajay I like it!
            – Alexander
            7 hours ago




            @Ajay I like it!
            – Alexander
            7 hours ago


















            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53608590%2fwhat-does-the-g-stand-for-in-gcount-tellg-and-seekg%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Mont Emei

            Province de Neuquén

            Journaliste