как найти строку в файле и получить номер строки - PullRequest
0 голосов
/ 19 августа 2010

Добрый день всем,

Мне нужна ваша помощь, ребята, по этой проблеме. Я не могу понять, как обойти это сейчас. У меня есть файл, который содержит даты в следующем формате.
03 \ 03 \ 2010

04 \ 03 \ 2010

05 \ 03 \ 2010

06 \ 03 \ 2010

07 \ 03 \ 2010

08 \ 03 \ 2010

09 \ 03 \ 2010

10 \ 03 \ 2010
, , .
, , .
, , .
Я хочу получить номер строки любой указанной строки даты из файла. То есть, если я хочу получить номер строки 09 \ 03 \ 2010, как мне этого добиться.

Ответы [ 3 ]

2 голосов
/ 19 августа 2010

Считывает файл по очереди за раз (например, с fgets), считая итерации, пока не достигнет строки, которая соответствует.

#define max_len 256

char line[max_len];
int current_line = 0;

while (fgets(file, line, sizeof(line))) {
    ++current_line;
    if (0 == strcmp(line, target))
        return current_line;
}
0 голосов
/ 19 августа 2010

Если вы не делаете это для домашней работы или спорта, используйте вместо этого существующие инструменты.В Unix это будет fgrep в этом случае.

Если вам нужно переопределить код, закодируйте конечный автомат, увеличивая счетчик строк в ответ на изменение состояния, вызванное чтением новой строки.

0 голосов
/ 19 августа 2010

Когда вы анализируете текстовый файл последовательно, увеличивайте счетчик каждый раз, когда встречаете символ \n. Это будет ваш счетчик номера строки на основе 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...