Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何从文件中读取某些行?(不是所有行或整个文件,只是某些行)_C_File - Fatal编程技术网

C 如何从文件中读取某些行?(不是所有行或整个文件,只是某些行)

C 如何从文件中读取某些行?(不是所有行或整个文件,只是某些行),c,file,C,File,我试图寻找类似的问题,可以找到我的问题的答案,但我似乎找不到。有人能告诉我有没有办法读取.txt文件中的某些行。例如,我想从文本文件中读取第2、3、5行 文本文件示例: 1255466889436 //Line 1 - I want to read this line 5489784642165 //Line 2 4984651425165 //Line 3 - I want to read this line 4968164816514 //Line 4 416

我试图寻找类似的问题,可以找到我的问题的答案,但我似乎找不到。有人能告诉我有没有办法读取.txt文件中的某些行。例如,我想从文本文件中读取第2、3、5行

文本文件示例:

1255466889436     //Line 1 - I want to read this line
5489784642165     //Line 2
4984651425165     //Line 3 - I want to read this line
4968164816514     //Line 4
4161654168468     //Line 5 - I want to read this line

如果有人能展示示例代码那就太好了,因为我现在真的很困惑

阅读所有行,丢弃不需要的行


您可以查找文件中的任何偏移量,但哪一行是偏移量5000?这取决于前5000个字符中有多少换行符。除非检查所有字符,否则您不知道。

您可以读取所有行,忽略不需要的行。请记住,您从文件的开头开始,一直阅读这些行,直到找到所需的行或直到文件的结尾。

尝试以下方法: 通过检查eof()的值,从第一个字符开始读取文件,直到文件结束

直到到达文件末尾(feof(fp)==0)


当前字节位置为第0个字节或第一行的第一个字节,我们通过fgets()读取第一行,直到达到换行符。一旦到达\n,fgets()将覆盖其函数,ead内容将存储在数据数组中。此数组中的字符串长度是第一行中的字符/字节总数。因此,再加上1个字节,现在当前字节位置将成为下一行的开始字节。

到目前为止您尝试了什么?最简单的方法是逐行读取,每行计数器递增,然后丢弃偶数行。您必须读取所有行,并跳过不需要的行。我不认为有任何操作系统能够逐行读取文件。你必须设置一个行计数器变量,读取每一行,并在运行时丢弃你不想要的。2,3,5还是1,3,5?所有奇数行或由行号列表描述的特定行掩码?这看起来像是All true的副本,但如果所有行的长度完全相同(如问题所示)然后,您可以使用fseek提取选定的行,而不必读取每一行。如果文件是以只读方式访问的,并且您必须多次访问该文件,那么您可以优化以跟踪某些行的搜索位置。@user3386109:这是POSIX问题。Windows存在CR+LF转换问题。