1、使用fseek函数即可更改文件指针的位置。
创新互联建站专业提供成都温江机房服务,为用户提供五星数据中心、电信、双线接入解决方案,用户可自行在线购买成都温江机房服务,并享受7*24小时金牌售后服务。
函数名: 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语言文件定位,主要依靠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/10240)
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,失败时返回非零。
#includestdio.h
#includestring.h
int findstr(char *s_str,char *d_str);
int main(void) {
char s1[80],s2[80];
int n;
printf("请输入一个字符串:");
gets(s1);
printf("请输入你要查找的字符串:");
gets(s2);
n=findstr(s1,s2);
printf("%s在%s里共有%d个\n",s2,s1,n);
return 0;
}
int findstr(char *s_str,char *d_str) {
int i,j,k,count=0;
char temp[80];
int length=strlen(d_str);
for(i=0;istrlen(s_str);i++) {
k=0;
for(j=i;ji+length;j++)
temp[k++]=s_str[j];
temp[k]='\0';
if(!strcmp(temp,d_str)) count++;
}
return count;
}
我知道了,你不要用scanf()来完成字符串的输入,因为scanf()默认空格,回车,
制表符
都是字符串结束的标志
所以
用gets()函数,它允许输入空格,只有回车后,字符串才结束输入
程序如下
#includestdio.h
main()
{
int
i;
char
a[50];
定义数组
gets(a);
输入字符串
while(a[i]!='a')
判断位置
i++;
printf("位置在%d位",i+1);
}
如果哪有看不懂的,可以补充