我试图以这种方式在std :: stringstream中插入空格。
std::stringstream sstr;
sstr.str("");
sstr << " ";
sstr << 10;
然后将其设置为类似
的标签label->setString(sstr.str().c_str());
但它只给我10个,不包括空格。我已经按照许多链接来解决问题,但没有用。以下链接建议使用getline()但在我的情况下我不能这样做:
我也尝试使用 std :: noskipws ,但它也无效:
sstr << std::noskipws << " ";
任何帮助将不胜感激。
答案 0 :(得分:1)
std::stringstream
在使用时不应删除您的空格。你确定它不是修剪你的字符串并删除空格的标签对象吗?
尝试调试或打印字符串,然后再将其设置为标签。
答案 1 :(得分:1)
您可以使用put方法追加单个char:
std::stringstream sstr;
sstr.str("");
sstr.put(' ');
sstr.put(10);
答案 2 :(得分:0)
我认为你错了:
string labelstr;
std::stringstream sstr;
sstr.str("");
sstr << " ";
sstr << 10;
ss >> noskipws >> labelstr;
label->setString(labelstr);
答案 3 :(得分:0)
您的代码对我有效。这是一个可运行的示例:http://cpp.sh/8d6。
罪魁祸首必须setString
修剪你的输入。或者可能是稍后读取字符串的其他函数。