fopen不会在当前目录中创建文件

问题描述:

我已经在VS2010中创建了一个控制台应用程序,并且我想在运行exe的当前目录中创建一个文件。我用下面的代码fopen不会在当前目录中创建文件

fp = fopen("Pkts.csv", "w+");

但并不在当前目录得到创建的文件和文件指针不为NULL。但是,当我指定路径

fp = fopen("C:\\Windows\\Pkts.csv", "w+");

的文件被在指定的路径创建。如何在当前目录中创建文件?

+0

您是否正在Visual Studio中运行'.exe'(使用“开始调试”或“无调试开始”选项)?尝试从命令行运行(或直接双击它)。 – 2012-03-29 05:19:29

+0

你是什么意思“exe运行的地方”? – 2012-03-29 05:19:47

+0

我将exe复制到另一台机器上,并从命令行运行它 – indira 2012-03-29 05:20:24

什么是fp当你试图在当前目录中打开它的值?如果它为空,则出现问题。这可能是一个许可问题。如果没有,那么你应该确保该文件不是通过写入该文件然后尝试再次打开它(也许你正在查看错误的目录并假设它是工作目录)在别处创建的。

+0

fp值不为空 – indira 2012-03-30 09:28:46

从Visual Studio中运行.exe时。该文件将在您的项目目录的根目录中创建。 尝试运行.exe而不是Visual Studio

+0

[OP已经尝试直接从命令行运行它](http://*.com/questions/9919458/fopen-doesnt-create-file-in -the-当前目录#comment12660129_9919458)。 – 2012-03-29 05:26:25

+0

那么你能为我提供更多信息吗? – 2012-03-29 07:14:53

+0

如果正确指定了路径,则会创建文件。如果我喜欢在运行exe的同一目录中创建文件,则不会创建该文件 – indira 2012-03-30 07:22:59