gpt4 book ai didi

c - 在同一个文件流上使用 feof 两次

转载 作者:太空宇宙 更新时间:2023-11-04 08:06:02 27 4
gpt4 key购买 nike

我正在使用 feof 计算文件中的行数,如下所示。完成后,我需要逐行循环遍历同一个文件,并执行另一个取决于行数的操作。但是,while (!feof(f)) 不会在同一个文件流上运行第二次。有没有办法将 f 重置回开头以便我可以再次循环它?

 while (!feof(f))
{
ch = fgetc(f);
if(ch == '\n')
{
lines++;
}

}

while (!feof(f))
{
//need to do an operation that depends on knowing number of lines from first feof but this loop doesn't run because f is at the end

}

最佳答案

你寻找的调用是fseek

具体来说,这会将文件位置设置回文件的开头:

fseek(f, 0, SEEK_SET);

请注意,这可能会失败(例如,如果文件不是普通文件而是套接字或类似文件),因此您需要检查其返回值,如果返回 -1,errno.

关于c - 在同一个文件流上使用 feof 两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42867453/

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