2013-07-04 25 views
1

我試圖編寫一個程序來解析CSV文件(轉換爲.txt)的第一和第十六列。我在可執行文件的文件夾中有CSV(「posts.txt」)文檔。但是,無論何時我嘗試運行可執行文件,我的程序都會傳遞它無法打開文件(或「!infile.is_open()」)。介意給我一些幫助?我在Mac OSX 10.8.3上運行Xcode 3.2.3。代碼如下所示。Ifstream文件雖然一切似乎都沒有打開(C++)

#include <iostream> 
#include <fstream> 
#include <cstdlib> 
#include <string.h> 

using namespace std; 

void answeredPostGrabber() 
{ 
    ifstream inFile("posts.txt"); 

    string postNumber; 
    string answerNumber; 
    string throwAway; 

    if(inFile.is_open()) 
    { 

     while(inFile.good()) 
     { 
      getline(inFile,postNumber,','); 
      cout << postNumber << ","; 

      for(int y=1;y++;y<16) 
      { 
       getline(inFile,throwAway,','); 
      } 
      getline(inFile,answerNumber,','); 
      cout << answerNumber << endl; 

      ofstream edges; 
      edges.open("edges.txt",ios::app); 
      edges << postNumber << "," << answerNumber<< endl; 
      edges.close(); 

      ofstream nodes; 
      nodes.open("nodes.txt",ios::app); 
      nodes << postNumber << "\n" << answerNumber << endl; 
      nodes.close(); 

      getline(inFile,throwAway); 
      } 
    }else cout << "ERROR: Unable to open file." << endl; 
} 

int main() 
{ 
    answeredPostGrabber(); 
    return 0; 
} 

預先感謝您!

+0

您是否已將工作目錄設置爲「posts.txt」所在的目錄?如果你從XCode中運行它,情況可能不會如此。否則,文件權限是否正確? – arne

+0

爲什麼不創建一個虛擬文件,然後去找到它。這就是無法找到這個文件*應該*。 – ChiefTwoPencils

回答

6

我在帶有可執行文件的文件夾中有CSV(「posts.txt」)文檔。

文件應該出現在你的進程的current working directory,這可能是也可能不是同一個目錄下可執行的生活。如果有疑問,請嘗試在ifstream inFile(...);中指定完整路徑以查看是否改變了事情。

此外,該文件需要具有正確的權限以確保該進程可讀。

+0

我試圖用ifstream創建一個虛擬文件(ifstream infile(「asdf.txt」);),但是當我用它運行程序時,程序從未創建過文件(我的電腦上的任何位置!)。我相信所有的權限都是正確的。嗯......現在呢?有沒有創建文件的任何熟悉的XCode錯誤? –

相關問題