How to use fgetpos() function to get the current position of file pointer in C

2 Answers

0 votes
#include <stdio.h>
   
int main(void)
{
    char ch;
	
	FILE *fp = fopen("d:\\data.txt", "r");

    if (fp == NULL) 
		perror ("Error open file");
    else
    {
		fpos_t pos = 0;
	
		ch = fgetc(fp);
		printf("ch = %c\n", ch);
     
		fgetpos(fp, &pos);
		printf("pos = %I64d\n", pos);
		
		ch = fgetc(fp);
		printf("ch = %c\n", ch);
     
		fgetpos(fp, &pos);
		printf("pos = %I64d\n", pos);
		
        fclose(fp);
    }
	
    return 0;
}
  
  
/*
run:
  
ch = T
pos = 1
ch = h
pos = 2

*/

 



answered May 3, 2016 by avibootz
edited May 5, 2016 by avibootz
0 votes
#include <stdio.h>

int main(void)
{
	FILE *fp = fopen("d:\\data.txt", "r");
    if (fp == NULL) 
	{
		perror("Error open file");
		return 1;
	}
	
	fpos_t pos;
	fgetpos(fp, &pos);
	printf("pos = %I64d\n", pos);
	
	char ch = getc(fp);
	ch = getc(fp);
	
	fgetpos(fp, &pos);
	printf("pos = %I64d\n", pos);

	fclose(fp);

    return 0;
}

 
/*
run:
  
pos = 0
pos = 2

*/

 



answered May 5, 2016 by avibootz

Related questions

2 answers 167 views
1 answer 75 views
1 answer 203 views
2 answers 245 views
1 answer 96 views
96 views asked Sep 29, 2024 by avibootz
...