У меня проблема с моим кодом, и я надеюсь, что вы сможете помочь. Я не буду публиковать весь код, потому что он немного длинный, но я сосредоточусь на сложной части. Программа посвящена алгебраической операции с массивами. 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 существовал в обеих папках, я думал, что открыл правильный. Спасибо и извините за путаницу. –