[求助]帮忙修改一个文件操作的程序
这个程序的目的是打开一个txt文件,输出空格代替'[' ']'及其中间的内容,但是运行后会无限写入空格,调试发现在循环中ch的值一直没变,原因是运行fseek(fp1,-1*sizeof(char),1);之后指针就回到文件起点了,可是fseek第三个参数设置为1不是表示从指针本身位置进行移动么,请问这是怎么回事?
#include <stdio.h>
#include<stdlib.h>
void main()
{
char path[50],ch;
FILE *fp1;
int i;
printf("please input the path of the file:");
gets(path);
if((fp1=fopen(path,"r+"))==NULL)
{
printf("the file is not exist!\n");
exit(0);
}
do
{
ch=fgetc(fp1);
if(ch=='[')
for(i=0;ch!=']'&&i<=50;i++)//i用来防止过长
{
fseek(fp1,-1*sizeof(char),1);//1表示文件指针在当前文件指针位置
fputc(' ',fp1);
ch=fgetc(fp1);
}
}while(ch!=EOF);
printf("转换完成\n");
fclose(fp1);
}