Ⅰ 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,失敗時返回非零。