在C ++ Visual Studio中无法获取字符串的大小

时间:2019-02-25 14:13:30

标签: c++ sfml

我写了一个简单的程序来删除字符串中的一个字母,并在输入时使用退格键。应该每次都获取字符串的长度并删除最后一个字符,但是我无法让函数Php在我的程序中工作,我看到它在另一个人的stackoverflow中使用过。

too_large

它说.length();没有成员长度

1 个答案:

答案 0 :(得分:3)

问题是您(和您的代码)混合了两种不同类型的字符串。 Stringstring不同。似乎您需要名为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);
}

您将要学习的内容之一就是看一下代码,看看它的真正含义。