我正在尝试使用c创建一个程序来搜索和替换文本文件中的单词

时间:2014-11-06 16:29:47

标签: c

我输入了以下代码来实现搜索功能。我的想法是创建一个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;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您正在创建指针temp_fp,然后将该指针设置为fp。这实际上并不是复制fp,而是指向内存中与原始位置相同的位置。

此链接可能对您有用:https://www.cs.bu.edu/teaching/c/file-io/intro/