gpt4 book ai didi

C 程序读取两个模式之间的文件行并将其打印出来

转载 作者:行者123 更新时间:2023-11-30 17:54:54 25 4
gpt4 key购买 nike

我正在寻找逻辑和代码来读取文件并打印两个匹配模式之间的行。两种模式可以在一行中,也可以在下一个连续行中,或者第一个模式出现在行号“n”中,第二个模式出现在行号“m”中,或者第二个模式出现在行号“n”中,第一个模式出现在行中数字“m”。

实现的一种方法是读取文件并跟踪两个 int 变量,该变量将记录第一个模式匹配和其他模式匹配的行号。例如变量x,y。 x 将记录第一个模式的行号,y 将记录第二个模式的行号,关闭文件。然后检查 x=y 或 x> y 或 x < y 的条件,并根据重新读取的文件并打印 x 和 y 或 y 和 x 之间的行。不确定在关闭文件之前是否可以重新读取该文件?

另一种方法是编写 if 条件 with (字符串比较(模式1与当前行) || 字符串比较(模式2与当前行) && (字符串比较(模式1与当前行) || 字符串比较(模式2与当前行) ...不确定这是否有效,因此需要一些关于如何在 C 编程中实现它的反馈或指示。

最佳答案

您可以使用第一种方法与 fpos_t 变量来跟踪文件中每个模式匹配的位置,并使用 fgetpos() 获取这些变量的值> 当您找到匹配项时。然后,您可以使用 fsetpos() 将文件中的位置设置回您从第一场比赛中记录的点,以重新读取这些行并打印出您想要的行。无需关闭并重新打开文件。

您可以在fgetpos/fsetpos and ftell/fseek中找到有关这些功能的信息。以及使用 fgetpos()fsetpos() here 的示例.

关于C 程序读取两个模式之间的文件行并将其打印出来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14676689/

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