如何执行以下任务:
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似乎不是从文件开头搜索,而是在上一次调用后继续获取下一行!
答案 0 :(得分:0)
每个FILE都有一个文件位置或偏移量,执行fgets()时,该位置会向前移动。如果您希望从文件的开头进行读取,请在search_word_int()函数的开头插入以下行,以将文件偏移量移至文件的开头:
fseek(file, 0, SEEK_SET);