В-Почему fopen не работает?
У меня есть очень простой код:
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
FILE * file_ptr = NULL;
file_ptr = fopen ("file.txt", "r");
if (file_ptr == NULL)
{
puts ("Error!");
return EXIT_FAILURE;
}
else
{
puts ("O.k.!");
}
return EXIT_SUCCESS;
}
Вывод:
Error!
Почему fopen не работает? Файл не защищен, не открыт в другом месте и хранится в той же папке, что и *.exe этой программы. Я также попробовал его с указанием полного пути к файлу и с массивом, в котором хранится имя файла. Каждый раз, когда он выдает "Ошибка!".
Что происходит??
Я использую Eclipse Neon.2 Выпуск (4.6.2) с новейшим компилятором cygwin gcc в Windows 10 64 бит.
Спасибо за вашу помощь!
2 ответа:
Задача была решена путем замены
fopen
наfile_ptr = fopen("xxyyzzqq.txt", "w");
, а затем поиск на жестком диске, чтобы увидеть, где был создан файл.
Получается, что файл был создан в исходном каталоге проекта, а не в отладочном каталоге (где .exe-файл есть), в отличие от старой установки, которая использовала каталог debug в качестве рабочего каталога.
perror
это может помочь.FILE *file_ptr = fopen("file.txt", "r"); if (!file_ptr) { perror("fopen"); } else { printf("It's working!"); }
Аналогичный вопрос: fopen () не работает в C