我写了一个简单的程序来删除字符串中的一个字母,并在输入时使用退格键。应该每次都获取字符串的长度并删除最后一个字符,但是我无法让函数Php
在我的程序中工作,我看到它在另一个人的stackoverflow中使用过。
too_large
它说.length();
没有成员长度
答案 0 :(得分:3)
问题是您(和您的代码)混合了两种不同类型的字符串。 String
和string
不同。似乎您需要名为String
的SFML字符串类。而获得SFML字符串长度的方法称为getSize
而不是length
。
如果您未在代码中添加using namespace sf;
和using namespace std;
,则可以避免这种混淆。
代码中的另一个错误是退格键的处理。您的代码在检测到退格键时会删除一个字符,然后再次将其添加回去。这是因为您的代码在应具有if
语句时具有if ... else
语句。像这样
if (Keyboard::isKeyPressed(Keyboard::Backspace))
{
stringLength = userInput.length();
userInput.erase(1, 1);
}
else
{
userInput += eventInput.text.unicode;
userText.setString(userInput);
}
您将要学习的内容之一就是看一下代码,看看它的真正含义。