2016-12-17 79 views
-1

用C++編寫的代碼在輸出控制檯中寫入一系列數字。事實上,此代碼嘗試枚舉源節點和目標節點之間的圖中的所有路徑。例如單次運行生成:Graph :: printAllPaths

1,2,3

4,5-

6,7-

整個代碼可以在這裏找到:

http://www.geeksforgeeks.org/find-paths-given-source-destination/

我想要做的是將這些數字寫入文本或Excel文件。我對C++完全陌生,所以我非常感謝你的幫助,我應該怎麼做才能導出excel或文本文件。

假設的主要代碼:

// Driver program 
int main() 
{ 
    // Create a graph given in the above diagram 
    Graph g(4); 
    g.addEdge(0, 1); 
    g.addEdge(0, 2); 
    g.addEdge(0, 3); 
    g.addEdge(2, 0); 
    g.addEdge(2, 1); 
    g.addEdge(1, 3); 
    int s = 2, d = 3; 
    g.printAllPaths(s, d); 

    return 0; 
} 

我們已經定義g.printAllPathsg.addEdge

我所要做的是生成一個文本文件,並在那裏寫輸出:

ofstream outFile; 
outFile.open("sample.txt"); 
outFile <<g.printAllPaths(s, d)<<endl; 
outFile.close(); 

但這不起作用。

+2

「這並未不工作「不是一個有用的問題描述。 「你好,湯姆的汽車修理?我的車不行,能修好嗎?」 –

+0

Graph.printAllPaths返回什麼?一個常量字符&或什麼? – RamblinRose

+1

用'Graph :: printAllPaths'的代碼編輯你的文章。 –

回答

0

要使用的功能與operator<<,你需要把它返回流:

std::ostream& printAllPaths(std::ostream& outfile, int s, int d) 
{ 
    // Output to the stream, 
    // Example: 
    outfile << s << ", " << d; 
    return outfile; 
} 

另一種方法是不鏈條與operator<<功能:

void Graph::printAllPaths(std::stream& outfile, int s, int d) 
{ 
    outfile << s << ", " << d; 
} 

// Usage 
std::ofstream outfile("sample.txt"); 
if (outfile) 
{ 
    g.printAllPaths(outfile, s, d); 
    outfile << "endl"; 
    outfile.close(); 
}