2012-11-23 172 views
2

XCode中的函数fopen(FILE *fp)它不工作,我把文本文件放在根目录下,但不工作,这很奇怪,因为从终端执行正常,但是从IDE执行不行。fopen不能与XCode一起工作

,我使用的是这样做的sintax:

FILE *fp=fopen("name.txt", "r"); 
if(fp==NULL) 
{ 
    printf("the text file can't be opened"); 
    exit(0); 
} 
else 
    return fp; 

而且总是返回NULL

+1

从IDE执行时,必须在与'root'不同的目录中执行。将'strerror(ernno)'添加到'printf()'来发现fopen()失败的原因。 – hmjd

+0

“Xcode”中的含义是什么? ** Xcode与这无关。** – 2012-11-23 14:57:30

+0

@ H2CO3从Xcode IDE,Xcode配置中运行程序,以指定在执行时在所述目录中打开文件的当前工作目录具有*所有内容*有了这个。 – WhozCraig

回答

15

那么通过xcode运行时工作目录是什么?
默认情况下,IIRC未设置,这可能是IDE和终端之间的区别。

- 设置工作目录:

去: 产品>方案>修改方案......

那里去:
选项选项卡,然后选择一个工作目录

+0

+1:Xcode方案是在IDE下运行程序的许多不太直观的概念。它包含了丰富的选项,包括程序参数,工作目录等。如果他想从指定的工作目录运行他的程序,同时也推动他看看还有什么方案可用。 – WhozCraig

+0

解决方案放在整个路由中,就像“/Users/User/Documents/Develop/file.txt”感谢您的帮助。 – Chepeman

+0

当然,这也可以工作,因为你根本不需要工作目录:)可能它最好也是(IMO) –

0

这是因为你的根目录不是你的IDE的工作目录。可以更改配置以使用根目录作为IDE的工作目录,也可以将name.txt放在IDE的工作目录中。