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

时间:2015-03-03 13:11:19

标签: c++ windows-phone-8.1 stringstream

我试图以这种方式在std :: stringstream中插入空格。

std::stringstream sstr;
sstr.str("");
sstr << " ";
sstr << 10;

然后将其设置为类似

的标签
label->setString(sstr.str().c_str());

但它只给我10个,不包括空格。我已经按照许多链接来解决问题,但没有用。以下链接建议使用getline()但在我的情况下我不能这样做:

  

stringstream doesn't accept white space?

我也尝试使用 std :: noskipws ,但它也无效:

sstr << std::noskipws << " ";

任何帮助将不胜感激。

4 个答案:

答案 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);

http://www.cplusplus.com/reference/ios/noskipws/

答案 3 :(得分:0)

您的代码对我有效。这是一个可运行的示例:http://cpp.sh/8d6

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