我有ComboBox,其中包含分辨率值。从800x600到1920x1080。我试图从分辨率模式中提取(this)x(this)。我能够从ComboBox中获取选定的值,但是我无法达到所计划的字符串。

        comboBox->GetSelectedValue() // i get value here
        std::stringstream buffer;
        buffer << comboBoxValue;
        std::string myBufferResolution = buffer.str();
        size_t Position1 = 0;
        size_t Position2;

        Position2 = myBufferResolution.find("x", Position1);
        myBufferResolution.substr(Position1, (Position2-Position1));
        Position1 = Position2+1;

        std::cout << "Selected resolution is: " << myBufferResolution << std::endl;


std :: cout只打印选择的值,但是我想要的是,如果我cout comboBox-> GetSelectedValue()我会得到。

如何从800x600、1024x768等获取值?因为我做错了

最佳答案

string::substr()方法返回一个新分配的字符串,它不会修改正在调用它的对象。

因此,应为:

const std::string width = myBufferResolution.substr(Position1,
                                                    (Position2-Position1));


我确实认为有更好的方法可以做到这一点(在C语言中,我将使用sscanf(myBufferResolution.c_str(), "%ux%u", &width, &height);)。

关于c++ - 从800x600提取800和600,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22322746/

10-11 16:30