Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.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

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_Io - Fatal编程技术网

C 获取文件的行号

C 获取文件的行号,c,file,io,C,File,Io,我正在读取一个文件,并希望在特定条件下存储行号 我知道fGet用于读取行,是否有任何方法可以存储/获取光标所在的行号。标准文件流的上下文中没有光标。有一个文件指针,但没有光标。光标是控制台/终端驱动程序的概念。即使使用文件指针,通常也不会在行模式下使用它们,它们用于随机访问/二进制类型访问。您可以在文本模式下查找文件的开头和结尾。但是fseek不知道行或光标,所以不要使用它 您只需使用整数跟踪已读取的行数 int line = 0; while((fgets(...)) != NULL) {

我正在读取一个文件,并希望在特定条件下存储行号


我知道fGet用于读取行,是否有任何方法可以存储/获取光标所在的行号。

标准文件流的上下文中没有光标。有一个文件指针,但没有光标。光标是控制台/终端驱动程序的概念。即使使用文件指针,通常也不会在行模式下使用它们,它们用于随机访问/二进制类型访问。您可以在文本模式下查找文件的开头和结尾。但是fseek不知道行或光标,所以不要使用它

您只需使用整数跟踪已读取的行数

int line = 0;
while((fgets(...)) != NULL) {
    line++;
    ...
    if(...) {
        // store line number wherever you need it
        printf("found at line %d\n", line);    
    }
}

标准文件流的上下文中没有游标。有一个文件指针,但没有光标。光标是控制台/终端驱动程序的概念。即使使用文件指针,通常也不会在行模式下使用它们,它们用于随机访问/二进制类型访问。您可以在文本模式下查找文件的开头和结尾。但是fseek不知道行或光标,所以不要使用它

您只需使用整数跟踪已读取的行数

int line = 0;
while((fgets(...)) != NULL) {
    line++;
    ...
    if(...) {
        // store line number wherever you need it
        printf("found at line %d\n", line);    
    }
}

你所说的光标是什么意思?如果是文件指针,在使用fgets读取时使用行计数器就足够了?假设在这种情况下,ifstrncmpioarea,ABC,3==0,我想存储行号。计数器给出文件中ABC的计数,但不是ABCon的行号。每个fgets递增一个从0开始的计数器,然后检查条件。如果条件为true,则保存行号。如果条件为true,还可以使用ftell获取文件中下一行的实际字节数。光标是什么意思?如果是文件指针,在使用fgets读取时使用行计数器就足够了?假设在这种情况下,ifstrncmpioarea,ABC,3==0,我想存储行号。计数器给出文件中ABC的计数,但不是ABCon的行号。每个fgets递增一个从0开始的计数器,然后检查条件。如果条件为true,则保存行号。如果条件为true,还可以使用ftell获取文件中下一行的实际字节数。