繁体   English   中英

std :: stringstream中的空格插入失败

[英]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()但在我的情况下,我不能这样做:

stringstream不接受空格?

我也试过使用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://www.cplusplus.com/reference/ios/noskipws/

您的代码对我来说是预期的。 这是一个可运行的例子: http//cpp.sh/8d6

罪魁祸首必须是setString修剪您的输入。 或者可能是稍后读取字符串的其他函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM