[英]Reading from file doesn't return anything, but it is accessed
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp ;
int n,i,x[n];
fp=fopen("fin.txt","r");
if (fp == NULL) {
puts("Error opening filename.txt");
return EXIT_FAILURE;
}
fscanf("%d",&n);
for (i=0;i<n;i++)
fscanf("%d",&x[i]);
printf("%d ",n);
fclose(fp);
return 0;
}
我正在嘗試從文件中讀取,盡管它沒有打印任何內容。 我檢查了它是否打開了文件,它確實打開了。 雖然沒有返回數據。 這是為什么? 輸入文件:5 3 4 5 8 2 ----------------------------------------- --EDIT :該文件是項目的文件夾。
您沒有正確調用fscanf
。
fscanf
的第一個參數是要從中讀取的文件的FILE *
。 您已省略此參數,因此該函數將您傳入的字符串作為第一個參數並嘗試將其作為FILE
對象讀取。
將fp
作為每個調用中的第一個參數傳遞。
這也不符合您的期望:
int n,i,x[n];
這並不意味着數組x
的大小與n
的值相關。 這意味着x
的大小設置為n
的當前值,它還沒有被賦值。
在為n
讀入值后,將x
的聲明移至。
int rval = fscanf(fp, "%d",&n);
if (rval != 1) return EXIT_FAILURE;
int x[n];
for (i=0;i<n;i++)
fscanf(fp, "%d",&x[i]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.