У меня есть текстовый файл, и я хочу получить определенную строку из этого текстового файла. Содержимое файла выглядит,Поиск определенной строки в текстовом файле в C
<div class="logo_style">
<img src="/images/Gnome-Network-Wireless-NoTx-64.png">
<h2>Fast Actions</h2>
</div>
<div class="container">
<p><b><font color=green>Action "update_frequency" is sent.</font></b></p>
<br/><a href="/">[Back To Main Section]</a>
</div>
</body></html>
Я хочу искать только линию Action "update_frequency" is sent
и распечатать его на стандартный вывод. Я использовал функцию strstr, но когда я печатаю указатель, заданный strstr
, он также дает все конечные строки, которые появляются после нужной строки в текстовом файле. Поэтому я попытался сохранить возвращенный указатель в char *str_result
. Затем я скопировал первые 10 байтов str_result
в str_dst
, но я получаю результат как segmentation fault (core dumped)
. Вот следующий код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[])
{
FILE *file_r;
char *buffer;
buffer = malloc (100000);
char *str_result;
char str_dst[100];
file_r= fopen ("file_new.txt", "r");
fseek (file_r, SEEK_SET, 0);
while (fgets (buffer, 100000, file_r)!=NULL)
{
;
}
str_result = strstr(buffer, "Action");
memcpy (str_dst, str_result, 10);
printf("%s\n", str_dst);
fclose (file_r);
return 0;
}
Может кто-нибудь, пожалуйста предположить, что, как я могу получить только нужные строки текста, а не другие линии, как показано на strstr?
Спасибо заранее.
Почему вы использовали цикл while? –
Чтобы прочитать полное содержимое файла. – learningpal