gpt4 book ai didi

c - 文件指针和使用 fgets

转载 作者:行者123 更新时间:2023-12-04 12:36:22 29 4
gpt4 key购买 nike

gcc 4.4.4 c89

我正在读取一个文件,在该文件中,我必须对每一行进行一些操作。

在一个循环中,我调用了 2 个函数,它们传入此文件指针以对文件执行 2 种不同的操作。

但是,当我使用 fgets 读取该文本文件的一行时。它会自动增加到下一行。所以对于第二次调用,它已经增加了。但是,我想在与第一个函数相同的行上执行不同的操作。

FILE *fp = NULL;
fp = fopen("devices.txt", "r");
for each line
get_devicename(fp); <-- calls fgets and operates on line 1, then increments to line 2

get_machine_code(fp); <-- calls gets and already on line 2, I need line 1
end for

为了解决这个问题,我创建了 2 个文件指针对象并将它们传递给函数。但是,将来我可能需要对这个文本文件进行更多操作。因此,如果我必须继续创建文件指针的实例,那么可扩展性就不是很好。

非常感谢您的任何建议,

最佳答案

首先阅读该行,然后将该行传递给您的 get_XXX 函数:

FILE *fp = NULL;
char buf[4096];
fp = fopen("devices.txt", "r");
while(fgets(buf,sizeof buf,fp) != NULL) {
get_devicename(buf);
get_machine_code(buf);
}

关于c - 文件指针和使用 fgets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3387049/

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