C语言:在文本文件中搜索“ var”,并将下一个字符串存储为值

时间:2018-12-12 14:30:02

标签: c string search scanf fgets

如何执行以下任务:

file = fopen("filename","r");
search_word_int( "var1" , file , 1 );
search_word_int( "var2" , file , 1 );
...
fclose(file);

我用过:

int search_word_int( char *word , FILE *file , int *step )
{
    char dummy[256];
    int variable = 0, step_ = step;
    while( (fgets( dummy , 256 , file )) != NULL )
    {
        if( strcmp( dummy , word ) != 0 )
        {
            for (int i = 0 ; i < step_ + 1 ; i++)
                fscanf( file , "%d" , &variable );
            printf("%s is found = %d\n",word,variable);
            return(variable);
        }
    }
}

作为搜索功能,但fgets似乎不是从文件开头搜索,而是在上一次调用后继续获取下一行!

1 个答案:

答案 0 :(得分:0)

每个FILE都有一个文件位置或偏移量,执行fgets()时,该位置会向前移动。如果您希望从文件的开头进行读取,请在search_word_int()函数的开头插入以下行,以将文件偏移量移至文件的开头:

fseek(file, 0, SEEK_SET);