gpt4 book ai didi

c - 在 C 中搜索文本文件中的特定行

转载 作者:太空宇宙 更新时间:2023-11-04 05:53:48 26 4
gpt4 key购买 nike

我有一个文本文件,我想从这个文本文件中获取特定的一行。文件内容看起来像,

<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 中。然后我在 str_dst 中复制了 str_result 的前 10 个字节,但我得到的结果是 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 显示的其他行?
提前致谢。

最佳答案

memcpy (str_dst, str_result, 10); 不插入/添加 NULL 终止符。

您必须在memcpyprintf 之间添加str_dst[10]='\0'; 以避免段错误

关于c - 在 C 中搜索文本文件中的特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32566130/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com