Кроме старого варианта main
, на самом деле много не так с этим кодом. Следует, за исключением ошибок, создать файл.
Однако, поскольку вы не проверяете возвращаемое значение из fopen
, вы можете получить какую-то ошибку и не знать об этом.
Я бы начал с:
#include <stdio.h>
#include <errno.h>
int main (void) {
FILE *fp;
fp = fopen ("write.txt","w");
if (fp == NULL) {
printf ("File not created okay, errno = %d\n", errno);
return 1;
}
//fprintf (fp, "Hello, there.\n"); // if you want something in the file.
fclose (fp);
printf ("File created okay\n");
return 0;
}
Если вы непреклонны в том, что файл не создается, но приведенный выше код говорит, что это так, то вы можете стать жертвой страшного «IDE работает в другом каталоге, а не в том, что вы думаете» :-)
Некоторые IDE (например, Visual Studio) фактически запускают ваш код, когда они находятся в каталоге, таком как <solution-name>\bin
или <solution-name>\debug
. Вы можете узнать, поставив:
system ("cd"); // for Windows
system ("pwd") // for UNIXy systems
в вашем коде, чтобы увидеть, где он работает. Это , где будет создан файл, если вы укажете строку относительного пути "write.txt"
. В противном случае вы можете указать абсолютный путь, чтобы убедиться, что он пытается создать его в определенной точке файловой системы.