我有,我想沒有處理迭代中任何形式的當前行的文件已知直線。我正在尋找的是確定文本文件的最佳方式。例如,將當前行存儲到變量中似乎毫無用處,直到達到預定行。C:最好的方式去一個文件
例子:
file.txt的
foo
fooo
fo
here
通常情況下,爲了得到here
,我會做這樣的:
FILE* file = fopen("file.txt", "r");
if (file == NULL)
perror("Error when opening file ");
char currentLine[100];
while(fgets(currentLine, 100, file))
{
if(strstr(currentLine, "here") != NULL)
return currentLine;
}
但fgets
將要讀完全沒有用的三條線和currentLine
將不得不存儲foo
,fooo
和fo
。
有沒有更好的方式來做到這一點,知道here
是4號線?有點像go to
但文件?
對於普通文件,做更好的唯一途徑是建立和維護自己的指數行號和fseek偏移量。 (這很簡單,但有點工作。) –