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获取文件中下一行的实际字节数。