ftell() prototype
long ftell(FILE* stream);
The ftell()
function takes a file stream as its argument and returns the current value of the file position indicator for the given stream as a long int type.
It is defined in <cstdio> header file.
ftell() Parameters
stream: The file stream whose current position is returned.
ftell() Return value
On success, the ftell()
function returns the file position indicator. Otherwise, it returns -1L.
Example: How ftell() function works
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int pos;
char c;
FILE *fp;
fp = fopen("file.txt", "r");
if (fp)
{
while ((c = getc(fp)) != EOF)
{
pos = ftell(fp);
cout << "At position " << pos << ", character is " << c << endl;
}
}
else
{
perror("Error reading file");
}
fclose(fp);
return 0;
}
When you run the program, the output will be:
At position 1, character is P At position 2, character is r At position 3, character is o At position 4, character is g At position 5, character is r At position 6, character is a At position 7, character is m At position 8, character is i At position 9, character is z At position 10, character is . At position 11, character is c At position 12, character is o At position 13, character is m