获取文件的行号

时间:2014-10-31 15:57:13

标签: c file io

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

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

1 个答案:

答案 0 :(得分:4)

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

您只需跟踪一个整数读取的行数。

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