Нет файлов, созданных с помощью fopen (); почему или где они? - PullRequest
0 голосов
/ 24 марта 2019

Я работаю над проблемой CFD в c, используя CodeBlocks (Windows). Когда я пытаюсь записать файлы результатов с помощью fopen (), файлы не создаются (если они есть, их нигде нет). Сценарий создается в виде проекта с несколькими заголовочными файлами, ошибок не возникает, и сценарий, кажется, работает без сбоев.

Я попытался запустить if (f==NULL), но там тоже не происходит никаких ошибок. Я также попытался запустить CodeBlocks от имени администратора без какой-либо удачи, а также зайти в Project -> Properties -> Build target и убедился, что рабочий каталог Execution совпадает с рабочим каталогом. Могу ли я неправильно понять, где находится мой рабочий каталог?

Я пытался найти имя файла на всем диске C: на случай, если в нем было какое-то случайное место, но поиск был отрицательным.

Используются препроцессоры: stdio, stdlib и math.

Мне нужно написать несколько файлов, в основном .txt, но это пример файла .vtf для графики OpenGL.

FILE *f = fopen("GLresults.vtf", "w+");
if (f==NULL)
{
    printf("Error");
}

Ответы [ 2 ]

0 голосов
/ 25 марта 2019

Проблема исправлена!Перепробовал несколько предложений, приведенных выше, но это оказалась небольшая и скрытая опечатка в цикле for.Обнаружил ошибку, пытаясь прочитать существующий файл, который не работал, поэтому я использовал return; и printf("hello\n") для локализации проблемы.

Спасибо за помощь, многое узнал об отладке при этом.

0 голосов
/ 24 марта 2019

Выводит ли ваш код сообщения об ошибке, если нет, проверьте каталог <project directory>\bin\Debug\ или <project directory>\bin\Release\. Например, если ваш проект с именем CFD находится в C:\My Projects\ и выбрана цель сборки Отладка (которая выбрана по умолчанию), проверьте каталог C:\My Projects\CFD\bin\Debug\ или C:\My Projects\CFD\bin\Release\.

...