簡體   English   中英

String :: push_back()不回推

[英]String::push_back() does not push back

我目前正在為后綴轉換器編寫一個中綴。 它工作得很好,除了我在將其余堆棧添加到postfix時遇到問題。 堆棧是一個

vector<char>

后綴是一個字符串。 閱讀完所有內容后,請嘗試以下操作:

while (!stack.empty()) {
    postfix.push_back(stack.back());
    stack.pop_back();
}

但是沒有附加任何內容。 我什至在Debug-mode下嘗試了它,看起來還不錯,但是沒有附加任何內容。

std::cout << postfix.c_str();

從堆棧中省略最后一個運算符。 我什至嘗試將其臨時保存,但沒有被推送。

由於限制,我無法將所有四個文件發布到pastebin中。 我使用的是Visual Studio 2010 Ultimate,沒有任何錯誤,只是沒有附加任何字符。

打印該字符串的方式不必要地很復雜-可能是錯誤的。 如果您更換

std::cout << postfix.c_str();

std::cout << postfix;

然后,您將看到字符串中真正的內容, 即使它包含嵌入的null字符

由於您將'\\ 0'用作錯誤指示符,但未對其進行檢查,因此您很可能嵌入了null。 通過使用c_str(),您明確要求在第一個null處截斷該字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM