gpt4 book ai didi

c - 如何通过fscanf找到EOF?

转载 作者:行者123 更新时间:2023-11-30 16:31:42 24 4
gpt4 key购买 nike

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

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

-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 退出循环,而不是 count 。怎么解决呢?

最佳答案

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

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

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

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

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