我在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;
}
Run Code Online (Sandbox Code Playgroud)
而不是计数我想通过EOF退出循环.怎么解决?
pre*_*lic 17
fscanf
- "成功时,该函数返回成功读取的项目数.此数量可以匹配预期的读数数量,或者在匹配失败的情况下减少 - 甚至为零.如果在任何数据之前输入失败,则成功阅读,退还EOF."
因此,您不必像现在这样对返回值执行任何操作,而是可以检查它是否存在== EOF
.
您应该在通话时检查EOF fscanf
,而不是检查阵列插槽是否有EOF.
while (fscanf(input,"%s",arr) != EOF && count!=7) {
len=strlen(arr);
count++;
}
Run Code Online (Sandbox Code Playgroud)