函数声明 |
long ftell ( FILE * stream ); |
所在文件 |
stdio.h |
函数功能 |
得到流式文件的当前读写位置,其返回值是当前读写位置偏离文件头部的字节数. |
参数及返回解析 |
|
参数 |
FILE * 流文件句柄 |
返回值 |
int 成功,返回当前读写位置偏离文件头部的字节数。失败, 返回-1 |
#include <stdio.h>
int main()
{
char *str = "123456789";
FILE *fp = fopen("test.txt", "w+");
long cp = ftell(fp);
printf("cp = %li\n", cp); // 0
// 写入一个字节
fputc(str[0], fp);
cp = ftell(fp);
printf("cp = %li\n", cp); // 1
fclose(fp);
return 0;
}
函数声明 |
void rewind ( FILE * stream ); |
所在文件 |
stdio.h |
函数功能 将文件指针重新指向一个流的开头。 |
|
参数及返回解析 |
|
参数 |
FILE * 流文件句柄 |
返回值 |
void 无返回值 |
#include <stdio.h>
int main()
{
char *str = "123456789";
FILE *fp = fopen("test.txt", "w+");
long cp = ftell(fp);
printf("cp = %li\n", cp); // 0
// 写入一个字节
fputc(str[0], fp);
cp = ftell(fp);
printf("cp = %li\n", cp); // 1
// 新指向一个流的开头
rewind(fp);
cp = ftell(fp);
printf("cp = %li\n", cp); // 0
fclose(fp);
return 0;
}
函数声明 |
int fseek ( FILE * stream, long offset, int where); |
所在文件 |
stdio.h |
函数功能 |
偏移文件指针。 |
参数及返回解析 |
|
参 数 |
FILE * stream 文件句柄 |
|
long offset 偏移量 |
|
int where 偏移起始位置 |
返回值 |
int 成功返回 0 ,失败返回-1 |
#define SEEK_CUR 1 当前文字
#define SEEK_END 2 文件结尾
#define SEEK_SET 0 文件开头
#include <stdio.h>
int main()
{
FILE *fp = fopen("test.txt", "w+");
fputs("123456789", fp);
// 将文件指针移动到文件结尾, 并且偏移0个单位
fseek(fp, 0, SEEK_END);
int len = ftell(fp); // 计算文件长度
printf("len = %i\n", len);
fclose(fp);
return 0;
}
#include <stdio.h>
int main()
{
FILE *fp;
fp = fopen("file.txt","w+");
fputs("123456789", fp);
fseek( fp, 7, SEEK_SET );
fputs("lnj", fp);
fclose(fp);
return 0;
}
项目的发展离不开你的支持,如果 CNote 帮助到你打开编程的大门,请作者喝杯咖啡吧 ☕ 后续我们会继续完善更新!加油!
点击捐赠支持作者
如果大家想要实时关注我们更新的文章以及分享的干货的话,可以关注我们的微信公众号“代码情缘”。