2017-02-26 331 views
0

我正在学习C编程,所以我是一个初学者。如何在Mac上的Code :: Blocks上设置工作目录?

我在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文件自动打开(如果可能的话)?

我怀疑我的工作目录没有正确设置,但由于我对此很陌生,我不知道这会是什么样子,或者我会如何改变设置。

如果任何魔法师/巫师可以帮助杜绝这种痛苦我会永远感激:)

回答

1

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

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

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

+0

谢谢您的回答:) 是的,指定绝对路径是我现在已经解决了这个问题的方法。 昨天我尝试了这些步骤很多次,没有成功,这是我遵循的步骤; 项目>属性>构建目标>(我在其中找到执行工作目录) 执行工作目录框中填充了一个点“。”。 我点击执行工作目录的选项框,我可以导航到我的项目目录,但似乎无法在这里保存任何东西,我怀疑我做错了什么,我是否需要创建一个新的文件夹来保存? – 8TrackRobot

+0

你可以编辑盒子内容吗?如果是这样,请尝试在那里输入项目目录的绝对路径。如果它不可编辑,请尝试直接编辑[项目文件](http://wiki.codeblocks.org/index.php?title=Project_file#Working_directory)。如果所有这些都无济于事,请从论坛尝试[此解决方法](http://forums.codeblocks.org/index.php?topic=10328.0)。如果一切都失败了,你可以使用'chdir()'(需要'#include ')来改变工作目录,然后在你的程序中做任何其他的事情,但这实际上只是一个破解你的程序中的代码::块IDE。 – puzzle