我的代碼有問題,我希望你能幫忙。我不會發布所有的代碼,因爲它有點長,但我會專注於麻煩的部分。 該程序是關於數組的代數運算。 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;
}
你在正確的目錄嗎?還是你輸入完整的路徑?如果是這樣,那25個字符就足夠了嗎?另外,它可能是另一個程序鎖定了文件嗎?也許是權限問題?你在哪個平臺上? – GolezTrol
我自己測試了一下代碼,確保第一部分工作(不在fopen後測試),假定文件位於同一目錄中,並且文件名很小。 – missimer
我是個白癡。我將程序文件保存在不同的目錄中,並未將文件複製到同一文件夾中。由於.c文件存在於兩個文件夾中,我以爲我打開了正確的文件。感謝和抱歉的混淆。 –