打开文件问题

时间:2015-06-27 22:47:57

标签: c file

我的代码有问题,希望你能提供帮助。我不会发布所有代码,因为它有点长,但我会专注于麻烦的部分。 该程序是关于数组的代数运算。 read_array2从文件中读取第一个nxn实数,并将它们放在全局数组中。问题是我总是收到相同的消息"我无法打开此文件"。我甚至添加了一个printf()来测试名称是否正确存储在fname中,我发现它是。是的,我已经验证我使用的文件存在并且我正确输入了他们的名字。 我不知道它是否重要,但文件有10000个实数,由一个空格分隔。 我知道在没有所有可用代码的情况下很难判断,但你是否看到可能导致此问题的不合适的地方?

int read_array2(double table[N_MAX][N_MAX], int n){
int i, j;
FILE *infile;
char fname[25];

printf("\nFile Name: ");
scanf("%s",&fname);

if ((infile = fopen(fname,"r")) == NULL){
    printf("\nI cannot open this file.\n");
    return 1;
}

for (i = 0; i < n; i++)
    for(j = 0; j < n; j++){
    fscanf(infile, "%lf ", &table[i][j]);
}

fclose(infile);

return 0;
}

1 个答案:

答案 0 :(得分:1)

您还记得输入文件的扩展名吗?例如:打开一个名为&#34; MyFile&#34;的文本文件。你需要输入&#34; MyFile.txt&#34;此外,如果它不在程序的同一目录中,您还需要包含完整路径。注意:文件名区分大小写,在键入路径时需要转义转义符#34; \\&#34;或使用&#39; /&#39;即C:\\ Users \\ MyFile.txt或C:/Users/MyFile.txt