C语言中fseek()与rewind()的比较


fseek()

C语言中的fseek()函数用于将文件指针移动到特定位置。偏移量和流是函数参数中给定的指针目标。如果成功,则返回零,否则返回非零值。

以下是C语言中fseek()函数的语法:

int fseek(FILE *stream, long int offset, int whence)

以下是fseek()函数中使用的参数:

  • stream − 这是用于标识流的指针。

  • offset − 这是从位置开始的字节数。

  • whence − 这是添加偏移量的起始位置。

whence由以下常量之一指定。

  • SEEK_END − 文件结尾。

  • SEEK_SET − 文件开头。

  • SEEK_CUR − 文件指针的当前位置。

以下是一个C语言中fseek()函数的示例:

假设我们有一个名为“demo.txt”的文件,其内容如下:

This is demo text!
This is demo text!
This is demo text!
This is demo text!

现在让我们看看代码。

示例

#include<stdio.h>
void main() {
   FILE *f;
   f = fopen("demo.txt", "r");
   if(f == NULL) {
      printf("
Can't open file or file doesn't exist.");       exit(0);    }    fseek(f, 0, SEEK_END);    printf("The size of file : %ld bytes", ftell(f));    getch(); }

输出

The size of file : 78 bytes

在上面的程序中,使用fopen()打开文件“demo.txt”,并使用fseek()函数将指针移动到文件结尾。

f = fopen("demo.txt", "r");
if(f == NULL) {
   printf("
Can't open file or file doesn't exist.");    exit(0); } fseek(f, 0, SEEK_END);

rewind()

rewind()函数用于将文件位置设置为给定流的开头。它不返回值。

以下是C语言中rewind()函数的语法:

void rewind(FILE *stream);

以下是一个C语言中rewind()函数的示例:

假设我们有一个名为“new.txt”的文件,其内容如下:

This is demo!
This is demo!

现在,让我们看看示例。

示例

#include<stdio.h>
void main() {
   FILE *f;
   f = fopen("new.txt", "r");
   if(f == NULL) {
      printf("
Can't open file or file doesn't exist.");       exit(0);    }    rewind(f);    fseek(f, 0, SEEK_END);    printf("The size of file : %ld bytes", ftell(f));    getch(); }

输出

The size of file : 28 bytes

在上面的程序中,使用fopen()打开文件,如果指针变量为空,则会显示“无法打开文件”或“文件不存在”。rewind()函数将指针移动到文件的开头。

f = fopen("new.txt", "r");
if(f == NULL) {
   printf("
Can't open file or file doesn't exist.");    exit(0); } rewind(f);

更新于:2020年6月26日

2K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告