我输入了以下代码来实现搜索功能。我的想法是创建一个FILE变量的副本' fp'在功能搜索中,名称为' temp_fp'。我的问题是,当我增加temp_fp时,fp也会增加。我花了好几个小时才找到错误。是不是可以创建FILE结构的副本?请帮帮我。
#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;
}
}
}
答案 0 :(得分:0)
您正在创建指针temp_fp,然后将该指针设置为fp。这实际上并不是复制fp,而是指向内存中与原始位置相同的位置。