我想将stringstream的输出与某些字符串进行比较。
问题是当我在stringstream上使用fill和width时,我无法将结果字符串与预加载的字符串进行比较。
std::stringstream sstr;
sstr.fill(' ');
sstr.width(4);
sstr << 4 << std::endl;
if(" 4" == sstr.str()){
std::cout << "Equal" << std::endl;
}
这不等于。我受过教育的猜测是,宽度会以某种方式使用某种标志或其他类型的指示符来替换字符串中的一堆空格。但我不确定,也没有找到任何有用的谷歌。有谁知道为什么我无法比较它(sstream.str()和目标字符串)?
目标是测试在控制台上打印stringstream(我的组件的核心)的内容。
答案 0 :(得分:4)
您还在字符串中插入了std::endl
。这将在字符串中添加换行符。
从输出中删除std::endl
。