Разница между Tellg и Tellp в C++
В этой статье мы обсудим функциональность 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 Codeint 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 Codeint 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() дает позицию указателя получения. |