Ⅰ c语言文件指针位移
因为ftell函数的作用就是得到当前指针的位置,
而你写的这个fseek(fp,0,SEEK_END); 指针的位置就是在文件末尾 没有移动
还有指针是以字节为单位 移动的么
就是D了
Ⅱ C语言中如何定位文件txt的光标
1、使用fseek函数即可更改文件指针的位置。
函数名: fseek
功 能: 重定位流上的文件指针
用 法: int fseek(FILE *stream, long offset, int fromwhere);
描 述: 函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere为基准,偏移offset个字节的位置。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置。
返回值: 成功,返回0,否则返回其他值。
2、例子:
fseek(fp,100L,0);//把文件内部指针移动到离文件开头100字节处;
fseek(fp,100L,1);//把文件内部指针移动到离文件当前位置100字节处;
fseek(fp,-100L,2);//把文件内部指针退回到离文件结尾100字节处。
Ⅲ C语言文件指针自动移动
文件内部指针不是就是用打开文件函数所赋值的那个指针,
打开函数的指针,是文件流的指针,指向这个文件流。
内部指针指向当前操作在文件流中的位置
fp是文件指针的话
可以使用ftell(fp)来获取当前内部指针位置。
也有fseek函数来设置内部指针位置,这些函数调用的时候,必须使用文件流的 指针。文件流的指针始终是这个fp,但内部指针的位置是一直在移动的,没有一个可见的内部指针的变量来让你操作,只对文件指针操作就可以了。
读写文件的时候内部指针自动移动,是C的IO系统管理来实现的,这个文件流其实仍然是IO,跟键盘鼠标都是由IO系统管理来做的,不用去关心底层的具体操作,只要知道读写操作以后内部指针变了,就行。
Ⅳ C语言文件位置指针的操作函数问题
函数原型
int fseek( FILE *stream, long offset, int origin );
stream为要操作的文件指针,offset为移动的范围,origin为起始位置
origin:SEEK_CUR为从文件的当前位置移动
SEED_END为从文件的末尾向前移动
SEEK_SET为从文件的开始向后移动
简单吧:)
Ⅳ C语言 文件定位
C语言文件定位,主要依靠fseek函数实现,具体代码如下,
#include <stdio.h>
int main(int argc, char *argv[])
{
FILE *fp=NULL;
long len=0L;//文件长度
fp=fopen("test.dat","rb");//假设当前目录有test.dat文件
if(!fp)//检查文件打开是否正常
{
printf("文件打开失败,程序退出!\n");
exit(1);
}
fseek(fp,0L,SEEK_END);//文件定位到文件末尾
len=ftell(fp);//获取文件长度
if(len/1024>0)
printf("文件大小为%ldKB!\n",len/1024);
else
printf("文件大小为%ldB!\n",len);
rewind(fp);//文件指针移到开始处
if(fp)//关闭文件
{
fclose(fp);
fp=NULL;
}
return 0;
}
int fseek( FILE *stream, long offset, int origin );函数fseek()为文件指针stream设置位置数据。origin的值应该是下列值之一,
SEEK_SET(从文件的开始处开始搜索)
SEEK_CUR(从当前位置开始搜索)
SEEK_END(从文件的结束处开始搜索)
fseek()成功时返回0,失败时返回非零。