C 语言标准库函数 - fgetpos()

返回上一级

C 语言标准库 <stdio.h> 函数 int fgetpos(FILE stream, fpos_t pos) 获取流 stream 的当前文件位置,并把它写入到 pos

头文件

#include <stdio.h>

函数原型

下面是 fgetpos() 函数的原型

int fgetpos(FILE *stream, fpos_t *pos)

参数

  • stream : 这是指向 FILE 对象的指针,该 FILE 对象标识了流
  • pos : 这是指向 fpos_t 对象的指针

返回值

  • 如果成功,该函数返回 0
  • 如果发生错误,则返回非零值

范例

下面的范例演示了 fgetpos() 函数的用法。

/**
 * file: main.c
 * author: 简单教程(www.twle.cn)
 *
 * Copyright © 2015-2065 www.twle.cn. All rights reserved.
 */

#include <stdio.h>

int main ()
{
   FILE *fp;
   fpos_t position;

   fp = fopen("demo.txt","w+");
   fgetpos(fp, &position);
   fputs("Hello, 简单教程!", fp);

   fsetpos(fp, &position);
   fputs("这将覆盖之前的内容\n简单教程,简单编程\n", fp);
   fclose(fp);

   return(0);
}

编译运行以上代码,将创建一个文件 demo.txt ,它的内容如下

这将覆盖之前的内容
简单教程,简单编程
  1. 首先我们使用 fgetpos() 函数获取文件的初始位置
  2. 接着我们向文件写入 Hello, 简单教程!
  3. 然后我们使用 fsetpos() 函数来重置写指针到文件的开头,


现在让我们使用下面的程序查看上面文件的内容

/**
 * file: main.c
 * author: 简单教程(www.twle.cn)
 *
 * Copyright © 2015-2065 www.twle.cn. All rights reserved.
 */

#include <stdio.h>

int main ()
{
   FILE *fp;
   int c;
   int n = 0;

   fp = fopen("demo.txt","r");
   while(1)
   {
      c = fgetc(fp);
      if( feof(fp) )
      {
          break ;
      }
      printf("%c", c);
   }

   fclose(fp);

   printf("\n");

   return(0);
}

编译运行以上程序,输出结果如下

$ gcc main.c && ./a.out
这将覆盖之前的内容
简单教程,简单编程

返回上一级

C 语言标准库

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.