В настоящее время я пытаюсь реализовать удаление символов из текстового поля в C ++. Если пользователь нажимает клавишу Backspace, выполняется следующий код. На данный момент нет курсора, он должен просто удалить последний символ ...
if (mText.length() > 0){
mText.erase( mText.length() - 1, 1);
// mText.resize(mText.length() - 1);
}
Это отлично работает в первый раз, но если вы нажмете Backspace снова, это ничего не удалит.
Я напечатал mText.length()
, и это показывает, что длина никогда не меняется. Я попытался resize()
строку, она работает нормально, но при первом нажатии Backspace удаляются 2 символов.
Я надеюсь, что кто-то может объяснить это поведение и помочь мне решить проблему. Я не знаю много о распределении памяти, поэтому, пожалуйста, будьте терпеливы со мной;)
Спасибо
opatut