【问题标题】:fopen doesn’t create file in the current directoryfopen 不在当前目录中创建文件
【发布时间】:2012-03-30 17:47:43
【问题描述】:

我在 VS2010 中创建了一个控制台应用程序,我想在当前运行 exe 的目录中创建一个文件。我使用了以下代码

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

但文件未在当前目录中创建,并且文件指针不为 NULL。但是当我将路径指定为

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

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

【问题讨论】:

  • 您是否在 Visual Studio 中运行 .exe(使用“开始调试”或“开始不调试”选项)?尝试从命令行运行这个东西(或者直接双击它)。
  • “exe 运行的地方”是什么意思?
  • 我将exe复制到另一台机器并从命令行运行它
  • @indira- 它在哪里被创建或根本没有被创建?
  • @CarlNorum:从 Visual Studio 的“开始(无)调试”功能运行 .exe 时,当前目录未设置为 .exe 所在的位置,而是在您设置的输出目录中在项目设置中。该文件可能已创建但位于其他位置。

标签: c++ c visual-studio-2010 fopen


【解决方案1】:

当您尝试在当前目录中打开它时,fp 的值是多少?如果它为空,则出现问题。这可能是权限问题。如果不是,那么您应该通过写入该文件然后尝试再次打开它来确保该文件不是在其他地方创建的(也许您正在查看错误的目录并假设它是工作目录)。

【讨论】:

    【解决方案2】:

    当您从 Visual Studio 中运行 .exe 时。该文件将在项目目录的根目录中创建。 尝试在没有 Visual Studio 的情况下运行 .exe

    【讨论】:

    猜你喜欢
    • 2016-09-27
    • 2012-12-17
    • 1970-01-01
    • 1970-01-01
    • 2019-06-22
    • 1970-01-01
    • 2021-12-05
    • 2017-02-27
    • 1970-01-01
    相关资源
    最近更新 更多