我有ComboBox,其中包含分辨率值。从800x600开始到1920x1080。我试图从分辨率模式中取出(这个)x(和这个)。我可以从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-&gt; GetSelectedValue()我会得到。
如何从800x600,1024x768等获取值?因为我做错了什么
答案 0 :(得分:5)
string::substr()
方法返回新分配的字符串,它不会修改您正在调用它的对象。
所以,它应该是例如:
const std::string width = myBufferResolution.substr(Position1,
(Position2-Position1));
我认为有更好的方法可以做到这一点(在C中我会使用sscanf(myBufferResolution.c_str(), "%ux%u", &width, &height);
)。