簡體   English   中英

從文件中讀取不會返回任何內容,但會被訪問

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM