我有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/