如果我使用 fgets() 函数在整个文本文件中搜索特定分隔符,如何确保 fgets() 不会在 EOF 处无限循环?
我将从 delimiter1 到 delimiter2 的所有行连接到 struct1[i].string1 中,其中 i 是 delimiter1/delimiter2 模式的第 n 次出现。这种模式在整个文本文件中一直持续到最后,这里没有 delimiter2,而是 EOF。我也想连接从 delimiter1 到 EOF 的所有内容。
int i;
while(fgets(temp_string,100,inFile) != NULL){
if(strcmp(temp_string,"Delimiter1")==0){ //checks to see if current line is delimiter1
j=strcmp(temp_string,"Delimiter2");
while(j!=0 && temp_string != NULL){ //Here I try to exit if it is the EOF
fgets(temp_string,100,inFile);
strcat(struct1[i].string1,temp_string);
j= strcmp(temp_string,"Delimiter2"); //update comparator
}
i++;
}
}
}
但是,当我尝试运行此代码时,我陷入了无限循环。我在内部 while 循环中放了一条打印语句,显示整数“i”是什么,它被困在数字 4 上,这是文本文件中 delimiter1 的总数,让我相信 EOF 给了我无限循环。
任何帮助,将不胜感激。