我输入了下面的代码来实现搜索功能只。我的想法是在函数搜索中创建一个名为'temp_fp'的FILE变量'fp'的副本。我的问题是,当我增加temp_fp时,fp也会增加。我一直花费数小时才能找到错误。难道不可能创建一个FILE结构的副本吗?请帮帮我。我试图创建一个程序来搜索和替换文本文件中的文字使用c
#include <stdio.h>
int main(void)
{
FILE *source;
char key[100];
source = fopen("search.txt", "r);
if (source == NULL)
{
printf("null");
return 0;
}
//read keyword
scanf("%s", key);
fsearch(source, key);
fclose(source);
}
int fsearch(FILE fp, char *key)
{
char ch, *temp;
FILE *temp_fp;
while (!feof(fp))
{
temp = key;
ch = fgetc(fp);
temp_fp = fp;
while ((ch == *temp))
{
printf("ch=%c\tkey=%c\n", ch, *temp);
ch = fgetc(temp_fp);
temp++;
if (*temp == '\0')
return fp;
}
}
}
速战速决,为你的代码是调用fgetpos标记当前位置,并呼吁FSEEK跳回至刻度。只是谷歌fgetpos和fseek。 – 2014-11-06 16:39:44
这段代码不会编译。 'fopen(“search.txt”,“r);'似乎是..。丢失的东西 – WhozCraig 2014-11-06 16:51:37
@Peter Li,我想创建程序时不使用许多标准函数,反正我会试试看,谢谢 – famempm 2014-11-06 17:00:22