0
對於下面的代碼,我試圖讓打印的節點以變量s
內的完整表達式存儲在字符串中。如何將連續輸出存儲爲完整字符串?
string ExprTree::prefixOrder(const ExprTree & t){
string s;
if (t.root != NULL){
s.append(t.root->toString());
prefixOrder(t.root->getLeftChild());
prefixOrder(t.root->getRightChild());
}
std::cout << s << std::endl;
return s;
}
對於算術表達式即5 + 5
我得到的輸出:
5
5
+
不過,我想在字符串s
在一個完整的字符串來存儲這些像"+ 5 5"
但附加存儲輸出在不同的元素,而不是在一個單一的字符串,所以我想知道我如何能夠實現這個結果?我嘗試使用stringstream
並遇到同樣的問題。
您的遞歸目前丟棄的返回結果將有助於實現您似乎尋求的東西。嘗試使用它們。我很好奇你是如何從* this *代碼中得到任何「輸出」的。 – WhozCraig
我編輯了OP。問題是我試圖獲取輸出的字符串存儲在一個單一的字符串變量和輸出在一個單一的行,如「+ 5 5」。我不確定遞歸結果如何幫助我實現這一點。 –
'std :: ostringstream'在這裏是正確的答案。 「跑到同一個問題」不是一個有用的問題描述。 –