gpt4 book ai didi

c - 如何通过fscanf找到EOF?

转载 作者:太空狗 更新时间:2023-10-29 16:30:42 25 4
gpt4 key购买 nike

我在 fscanf() 的帮助下通过文件读取矩阵。我怎样才能找到EOF?即使我尝试在 arr[] 捕获的每个字符串之后找到 EOF,我也无法找到它。

在计数的帮助下我正在读取输入文件

-12 23 3

1 2 4

int main()
{
char arr[10],len;
int count=0;

FILE *input= fopen("input.txt", "r");

while(count!=7)
{
fscanf(input,"%s",arr);
//storing the value of arr in some array.
len=strlen(arr);
count++;

if(arr[len+1]==EOF)
printf("\ni caught it\n");//here we have to exit.
}
return 0;
}

我不想计数,而是想通过 EOF 退出循环。如何解决?

最佳答案

fscanf - “成功时,该函数返回成功读取的项目数。此计数可以匹配预期的读数数,或者在匹配失败的情况下更少 - 甚至为零。如果在成功读取任何数据之前输入失败,则返回 EOF。”

因此,您可以检查它是否为 == EOF,而不是像现在这样对返回值不执行任何操作。

您应该在调用 fscanf 时检查 EOF,而不是检查 EOF 的数组槽。

关于c - 如何通过fscanf找到EOF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12048576/

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