Я читаю файл и хочу сохранить номер строки в определенном состоянии.Получить номер строки файла
Я знаю, что fgets
используется для чтения строки, есть ли способ сохранить/получить номер строки, где находится курсор.
Я читаю файл и хочу сохранить номер строки в определенном состоянии.Получить номер строки файла
Я знаю, что fgets
используется для чтения строки, есть ли способ сохранить/получить номер строки, где находится курсор.
Нет курсора в контексте стандартного потока файлов. Существует указатель на файл, но не курсор. Курсор представляет собой концепцию драйвера консоли/терминала. Даже с указателями файлов вы обычно не используете их в линейном режиме, они предназначены для доступа к произвольному доступу/двоичному типу. Вы можете искать начало и конец файла в текстовом режиме. Но fseek не является «строкой или курсором», поэтому не используйте его.
Вам просто нужно отслеживать количество строк, которые вы прочитали, с целым числом.
int line = 0;
while((fgets(...)) != NULL) {
line++;
...
if(...) {
// store line number wherever you need it
printf("found at line %d\n", line);
}
}
Что вы подразумеваете под * курсором *? Если это указатель на файл, использование счетчика строк, когда вы читаете с помощью 'fgets()', достаточно? –
Предположим, 'if (strncmp (ioarea," ABC ", 3) == 0)' в этом состоянии я хочу сохранить номер строки. счетчик дает мне счет «ABC» в файле, но не номер строки «ABC» – Aravind
на каждом fgets() увеличивает счетчик (который начинается с 0), а затем проверяет условие. если условие истинно, то сохраните номер строки. – user3629249