gcc 4.4.4 c89
我正在读取一个文件,并需要对每一行执行一些操作。
在循环中,我调用了两个函数,将该文件指针传递给它们,在文件上执行两个不同的操作。
然而,由于我使用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
为了解决这个问题,我创建了两个文件指针对象并将它们传递给函数。然而,未来我可能需要对这个文本文件进行更多的操作。如果我不得不一直创建文件指针的实例,那么这种方法就不太可扩展。
非常感谢您的建议,