我目前正試圖從C++中的文本字段中實現刪除字符。如果用戶點擊Backspace,則執行以下代碼。目前還沒有光標,它應該只是刪除最後一個字符...C++從字符串中刪除字符
if (mText.length() > 0){
mText.erase(mText.length() - 1, 1);
// mText.resize(mText.length() - 1);
}
也能正常工作的第一次,但如果你再打Backspace鍵,它不會刪除任何東西。
我打印了mText.length()
,它顯示長度從未改變。我試圖resize()
這個字符串,它工作的很好,但是我第一次點擊Backspace時刪除了個字符。
我希望有人能解釋這種行爲並幫助我解決問題。我不知道很多關於內存分配,所以請我耐心;)
感謝
opatut
什麼是mText的類型? – 2010-09-13 21:03:47
是mText是「文本字段」變量的副本,而不是變量本身? – 2010-09-13 21:06:38
private: std::string mText;
在類定義中......所以pop_back
是不可選的...... – opatut 2010-09-13 21:11:15