2014-05-06 158 views
-1

我想学习C++和我使用的Xcode。我有以下main方法:Xcode:把输入文件放在哪里?

int main() 
{ 
const int SIZE = 256; 
Expression* expression; 
char paren, comma, line[SIZE]; 
ifstream fin("input.txt"); 
while (true) 
{ 
    symbolTable.init(); 
    fin.getline(line, SIZE); 
    if (!fin) 
     break; 
    stringstream in(line, ios_base::in); 
    in >> paren; 
    cout << line << " "; 

     expression = SubExpression::parse(in); 
     in >> comma; 
     parseAssignments(in); 
     double result = expression->evaluate(); 
     cout << "Value = " << result << endl; 

    // catch the exceptions 


return 0; 
} 
} 

我在哪里可以把文件"input.txt"以便程序可以读取它?

+1

你尝试过什么?有什么不工作?通常,答案是“在正在运行程序的同一目录中” – darthbith

+0

在附注中,一致的缩进将使您的代码更具可读性。 – JBentley

+0

@JBentley:没有开玩笑。这是格式化程序。它一直告诉我“这看起来像你没有格式化的代码”,并不会让我发布。这是我能得到的最好的。 – MayNotBe

回答

0

所有相对路径(在OS X上,任何不以斜杠开头的路径,“/”),将相对于进程工作目录进行解释。

如果您从终端运行,它应该在终端的当前目录中(即ls应列出它)。

如果您从XCode内部运行,那么有一个项目设置,其目录应该是工作目录。
您设置到哪里你的文件,或将文件移动到哪里该目录。

+0

谢谢,帮助。 – MayNotBe

2

ifstream的文件名参数通常被认为是working directory的相对路径,因此您应该放置文件的位置。

如果从文件管理器启动可执行文件,进程的工作目录将最有可能被设置为目录中的可执行文件中。在这种情况下,文本文件应该是在同一个目录。