2014-05-06 197 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的相對路徑,因此您應該放置文件的位置。

如果從文件管理器啓動可執行文件,進程的工作目錄將最有可能被設置爲目錄中的可執行文件中。在這種情況下,文本文件應該是在同一個目錄。