例如,如果文件包含:
12345
-3445654
1245646
我想使用fgets()
将第一行读入字符串。然后我想阅读第二行,检查第一个点是否有'-'
。如果有,我会读第二行,strcat
到第一行。
然后我想再次使用fgets()
读取第三行。这次没有'-'
时我只想让文件回到第三行的开头,以便下次调用fgets()
时它会再次读取相同的第三行。
我有办法做到这一点吗?
答案 0 :(得分:1)
使用fgetc读取下一行的第一个字符,如果它不是' - ',请使用ungetc将其放回。
答案 1 :(得分:1)
一般情况下,您只需将文件的一部分保留在内存中,直到您确定不再需要它为止。
或者您可以将整个文件读入缓冲区,然后根据需要使用指针跳转它。
或者,如果你真的必须,你可以使用fseek更多当前流位置,然后重新阅读你需要的部分。
答案 2 :(得分:0)
每当我想要
我通常做的是声明第二个持线变量
char prevline[whateversize];
然后,介于步骤1和步骤2之间
strcpy(prevline, line);
(当然,您必须确保line
和prevline
变量一致地分配,例如作为相同大小的数组,以便溢出不是问题。)