我需要用C语言打决赛。用户应输入要播放的地图文件。
这是我的简单代码:
int main(){
FILE *map;
char fileToRead[100];
do{
printf("Insert file name: ");
fgets(fileToRead, 100, stdin);
map = fopen("/Users/rajunior/Desktop/map_2.txt", "r");
//map = fopen(fileToRead, "r");
printf("%s", fileToRead);
如果我使用硬编码的“ map = fopen("/Users/rajunior...)
”,它就可以工作!
但是我需要使用第二个(注释)选项;第一个对我来说没用。
换句话说,我需要将fileToRead
与.c放在同一目录中,但是如何?
答案 0 :(得分:1)
选项1:安装命令行工具。将C文件和文本文件放在同一目录中。打开一个终端窗口。从命令行编译并运行。如果我没记错的话,可以在Preferences.../Downloads
中找到命令行工具下载。
选项2:转到Product/Scheme/Edit Scheme...
菜单。出现对话框时,选择左侧的Run
和顶部的Options
。然后寻找Working Directory
。将工作目录设置为指向文本文件所在的目录。
答案 1 :(得分:1)
这将是一个评论,但是对于舒适度来说太长了。
运行时,您需要知道该进程的当前目录。如果从外壳程序运行它,则程序的当前目录将与该程序的当前目录相同。如果您从XCode中运行它,我不知道目录将是什么,但是它可能不会是源所在的位置—可能会在某种构建目录中。
您的程序可以使用getcwd()
找出运行位置。然后,您将能够知道如何chdir()
到源的目录(只要程序知道源的位置,因为您以某种方式告诉了它-参数或命令行变量,或…)。或者,您可以确定如何创建一个相对路径名,以在源目录中找到该文件。
可能有一种XCode(也许是Objective-C)方法,可能是通过plists来查找信息的。
我不为Mac编码;我只在Mac上进行编码,而很少运行XCode本身。