Разница между Tellg и Tellp в C++

Опубликовано: 7 Октября, 2022

В этой статье мы обсудим функциональность basic_istream<>::tellg и basic_ostream<>::tellp и разницу между ними.

tellg() : функция определена в классе istream и используется с входными потоками. Он возвращает позицию текущего символа во входном потоке.

Синтаксис:

pos_type tellg(); 

Тип возвращаемого значения: если указатель указывает на допустимую позицию, эта функция возвращает текущую позицию указателя получения. В противном случае возвращается «-1» .

Программа 1:

Ниже приведена программа C++, иллюстрирующая использование функции tellg():

C++




// C++ program to illustrate the
// use of tellg()
#include <fstream>
#include <iostream>
using namespace std;
  
// Driver Code
int main()
{
    ifstream fin;
    char ch;
  
    // Opens the existing file
    fin.open("gfg.text");
  
    int pos;
    pos = fin.tellg();
    cout << pos;
  
    fin >> ch;
    pos = fin.tellg();
    cout << pos;
  
    fin >> ch;
    pos = fin.tellg();
    cout << pos;
  
    return 0;
}

Входной файл:

 gfg.text
 
 hello students

Выход:

tellp() : функция определена в классе ostream и используется с выходными потоками. Он возвращает позицию текущего символа в выходном потоке, где этот символ может быть размещен.

Синтаксис:

pos_type tellp();

Тип возвращаемого значения: если указатель указывает на допустимую позицию, эта функция возвращает текущую позицию указателя получения. В противном случае возвращается «-1» .

Программа 2:

Ниже приведена программа C++, иллюстрирующая использование функции tellp():

C++




// C++ program illustrating the
// use of tellp()
#include <fstream>
#include <iostream>
using namespace std;
  
// Driver Code
int main()
{
    ofstream fout;
    char ch;
  
    // Opening the already existing file
    fout.open("gfg.text", ios::app);
    int pos;
    pos = fout.tellp();
    cout << pos;
  
    fout << "print it";
    pos = fin.tellp();
    cout << pos;
    fout.close();
  
    return 0;
}

Входной файл:

gfg.text

hello students
print it 

Выход:

Табличная разница между Tellp() и Tellg() :

скажи() рассказ ()
Эта функция используется с выходными потоками и возвращает текущую позицию указателя в потоке. Функция используется с входными потоками и возвращает текущую «полученную» позицию указателя в потоке.
Синтаксис: pos_type tellp(); Синтаксис: pos_type tellg();
Возвращает позицию текущего символа в выходном потоке. Он возвращает позицию текущего символа во входном потоке.
tellp() дает позицию указателя put. tellg() дает позицию указателя получения.

РЕКОМЕНДУЕМЫЕ СТАТЬИ