【问题标题】:How Do I Set the Working directory on Code::Blocks on Mac?如何在 Mac 上的 Code::Blocks 上设置工作目录?
【发布时间】:2017-02-26 12:41:57
【问题描述】:

我正在学习 C 编程,所以我完全是初学者。

我在 Mac 上使用 Code::Blocks 12.11,我有 Xcode 并下载了命令行包,所以一切似乎都在做我想做的事。

我的问题是当我打开一个 .txt 文件时,它没有出现在包含源代码和其他文件的目录中,我在 Finder 的 All My File 文件夹中找到了它。

我正在使用以下步骤创建项目 > 文件 > 新建 > 项目 > 控制台应用程序 > 然后命名项目并将其保存到我为所有程序创建的文件中。

我以前的所有项目都保存在此目录中的整洁文件夹中,但 .txt 文件除外。

这是我的代码。

/**

Automatic Control and Systems Engineering126 - Problem Sheet 2.Q2
Project: Opening a Text File for Writting
Author: Craig McAllister
Date: 23.02.17

**/

#include <stdio.h>

main()
{
      FILE *myFile;
      myFile=fopen("first.txt","w"); // open first.txt for writing (or create it if it doesn't exist) - this will be in the same folder as the c program
      fprintf(myFile,"Hello World!!!\n");
      fclose(myFile);
}

我读到另一个类似的问题,如果我给它一个直接的路径,它会起作用,并且在某种程度上它有;

myFile=fopen("/Users/craigmcallister/Documents/CodeBlocks/First_Text/first.txt","w");

这行代码将 .txt 文件保存在包含我的源代码的同一个项目文件中,这更接近我想要的解决方案。

我希望 .txt 文件自动保存在工作目录中,项目的其余部分都保存在这种情况下,并且在这种情况下让 .txt 文件自动打开(如果可能的话)?

我怀疑我的工作目录设置不正确,但由于我对此很陌生,所以我不知道这会是什么样子,也不知道我将如何更改设置。

如果有任何魔术师/巫师可以帮助结束这种痛苦,我将永远感激不尽:)

【问题讨论】:

    标签: c macos codeblocks working-directory


    【解决方案1】:

    如果您未指定absolute pathfopen() 将打开/创建相对于当前working directory 的文件。

    看起来在 Code::Blocks 中,默认工作目录不是项目目录。快速搜索 Code::Blocks 论坛似乎表明工作目录默认为 macOS 上用户的主目录。

    看起来您可以在 Project > Properties > Build Target > Execution Working Directory 中设置用于运行程序的工作目录。如果您将其设置为源文件所在的目录,那么您的文件也应该在该目录中创建。

    【讨论】:

    • 感谢您的回答 :) 是的,指定绝对路径是我目前解决问题的方法。我昨天多次尝试了这些步骤,但没有成功,这是我遵循的步骤;项目>属性>构建目标>(我在其中找到执行工作目录)执行工作目录框仅填充了一个点“。”我单击执行工作目录的选项框,我可以导航到我的项目目录,但似乎无法在此处保存任何内容,我怀疑我做错了什么,我需要创建一个新文件夹来保存吗?
    • 您可以编辑框内容吗?如果是这样,请尝试在此处输入项目目录的绝对路径。如果它不可编辑,请尝试直接编辑project file。如果所有这些都没有帮助,请尝试论坛中的this workaround。如果一切都失败了,您可以使用chdir()(需要#include &lt;unistd.h&gt;)在您的程序中执行任何其他操作之前更改工作目录,但这实际上只是在您的程序中运行 Code::Blocks IDE 的一个技巧.
    【解决方案2】:

    作为替代解决方案:

    • 项目工作区中创建一个空文件。
    • 运行项目,然后 Codeblocks 会询问是否要保留更改的内容?。
    • 点击yes,然后进入空文件标签查看程序输出。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-01
      • 2018-04-15
      • 1970-01-01
      • 1970-01-01
      • 2020-07-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多