Разница между basic_istream & lt; & gt; :: tellg () и basic_ostream & lt; & gt; :: tellp ()

Мне просто интересно, почему функции-члены tellg() определяется в basic_istream<> класс и tellp() определяется в basic_ostream<> класс имеют разные имена. Это потому что basic_fstream<> происходит от basic_istream<> а также basic_ostream<> ?

10

Решение

И как бы вы различали их в двунаправленных потоках,
лайк std::fstream или же std::stringstream? Потоки разрешены
поддерживать отдельные указатели для ввода и вывода: fstream
нет, но stringstream делает. Так что вам нужен либо флаг, чтобы
укажите, какой вы хотите (как в случае streambuf), или же
вам нужны две отдельные функции.

5

Другие решения

tellg() получить положение get указатель и tellp() получает положение put указатель, один из них это место, где вы читаете, а второй — где вы пишете в файл. Таким образом, две функции делают разные вещи и возвращают разные значения. Почему вы думаете, что они должны иметь одинаковое имя?

5

По вопросам рекламы [email protected]