因此,我试图找到一种方法来 fgets() C 文本文件中的特定行,以将该行的内容复制到更永久的缓冲区中:
基本上,我想知道是否有一种方法可以在不使用类似于以下代码的情况下做到这一点:
FILE *fp;
fp = fopen(filename, "r");
char line[256];
char * buffer;
int targetline = 10;
while( targetline > 0)
{
fgets(line, 256, fp)
}
buffer =(char*)malloc(sizeof(char) * strlen(line));
strcpy(buffer, line);
所以基本上我不想遍历文件 n-1 次只是为了到达第 n 行......它看起来效率不高(而且,这是家庭作业,我需要得到 100 % 哈哈)。
如有任何帮助,我们将不胜感激。
最佳答案
除非您对文件有更多了解,否则您不能随意访问特定行。新行由行结束字符分隔,通常可以出现在任何地方。文本文件不带有允许您跳到第 nth 行的map 或index。
如果您知道文件中的每一行长度相同,那么您可以使用随机访问跳转到特定行。如果没有此类额外知识,您别无选择,只能遍历整个文件,直到到达所需的行。
关于c - 如何 fgets() C 文件中的特定行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8175144/