What does the g stand for in gcount, tellg and seekg?
up vote
48
down vote
favorite
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
add a comment |
up vote
48
down vote
favorite
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
5
It it was called only plainseek(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
add a comment |
up vote
48
down vote
favorite
up vote
48
down vote
favorite
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
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
c++ iostream
edited 13 hours ago
Tu.ma
768218
768218
asked yesterday
Andrew Tomazos
34.7k25131224
34.7k25131224
5
It it was called only plainseek(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
add a comment |
5
It it was called only plainseek(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
add a comment |
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.
add a comment |
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.
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
add a comment |
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.
add a comment |
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.
add a comment |
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.
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.
edited 19 hours ago
Alex Taylor
5,39021533
5,39021533
answered yesterday
Stephan Lechner
25k21839
25k21839
add a comment |
add a comment |
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.
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
add a comment |
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.
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
add a comment |
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.
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.
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
add a comment |
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
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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