白色 space 插入 std::stringstream 失败
White space insertion in std::stringstream fails
我正在尝试以这种方式在 std::stringstream 中插入白色 space。
std::stringstream sstr;
sstr.str("");
sstr << " ";
sstr << 10;
然后将其设置为这样的标签
label->setString(sstr.str().c_str());
但它只给我 10 个, space 不包括在内。我跟着很多 link 解决了问题,但没有用。以下 link 建议使用 getline() 但在我的情况下我不能这样做:
stringstream doesn't accept white space?
我也尝试过使用 std::noskipws 但它也不起作用 :
sstr << std::noskipws << " ";
我们将不胜感激。
std::stringstream
在这样使用时不应删除空格。您确定修剪字符串和删除空格的不是标签对象吗?
尝试调试或打印出您的字符串,然后再将其设置为标签。
我认为你用错了:
string labelstr;
std::stringstream sstr;
sstr.str("");
sstr << " ";
sstr << 10;
ss >> noskipws >> labelstr;
label->setString(labelstr);
您可以使用 put 方法追加单个字符:
std::stringstream sstr;
sstr.str("");
sstr.put(' ');
sstr.put(10);
您的代码符合我的预期。这是一个可运行的示例:http://cpp.sh/8d6.
罪魁祸首一定是 setString
修剪了您的输入。或者可能是其他一些稍后读取字符串的函数。
我正在尝试以这种方式在 std::stringstream 中插入白色 space。
std::stringstream sstr;
sstr.str("");
sstr << " ";
sstr << 10;
然后将其设置为这样的标签
label->setString(sstr.str().c_str());
但它只给我 10 个, space 不包括在内。我跟着很多 link 解决了问题,但没有用。以下 link 建议使用 getline() 但在我的情况下我不能这样做:
stringstream doesn't accept white space?
我也尝试过使用 std::noskipws 但它也不起作用 :
sstr << std::noskipws << " ";
我们将不胜感激。
std::stringstream
在这样使用时不应删除空格。您确定修剪字符串和删除空格的不是标签对象吗?
尝试调试或打印出您的字符串,然后再将其设置为标签。
我认为你用错了:
string labelstr;
std::stringstream sstr;
sstr.str("");
sstr << " ";
sstr << 10;
ss >> noskipws >> labelstr;
label->setString(labelstr);
您可以使用 put 方法追加单个字符:
std::stringstream sstr;
sstr.str("");
sstr.put(' ');
sstr.put(10);
您的代码符合我的预期。这是一个可运行的示例:http://cpp.sh/8d6.
罪魁祸首一定是 setString
修剪了您的输入。或者可能是其他一些稍后读取字符串的函数。