![](/img/trans.png)
[英]conversion to string with std::stringstream fails on white spaces
[英]White space insertion in std::stringstream fails
我试图以这种方式在std :: stringstream中插入空格。
std::stringstream sstr;
sstr.str("");
sstr << " ";
sstr << 10;
然后将其设置为这样的标签
label->setString(sstr.str().c_str());
但它只给我10,空间不包括在内。 我已经按照许多链接来解决问题,但没有用。 以下链接建议使用getline()但在我的情况下,我不能这样做:
我也试过使用std :: noskipws但它也不起作用:
sstr << std::noskipws << " ";
任何帮助将不胜感激。
当像这样使用时, std::stringstream
不应该删除你的空格。 你确定它不是修剪你的字符串并删除空格的标签对象吗?
尝试调试或打印字符串,然后再将其设置为标签。
您可以使用put方法追加单个char:
std::stringstream sstr;
sstr.str("");
sstr.put(' ');
sstr.put(10);
我认为你错了:
string labelstr;
std::stringstream sstr;
sstr.str("");
sstr << " ";
sstr << 10;
ss >> noskipws >> labelstr;
label->setString(labelstr);
您的代码对我来说是预期的。 这是一个可运行的例子: http : //cpp.sh/8d6 。
罪魁祸首必须是setString
修剪您的输入。 或者可能是稍后读取字符串的其他函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.