2016-11-30 85 views
1

我想比较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(这是我的组件的核心)在控制台上打印。

回答

4

您还在字符串中插入了std::endl。这将为字符串添加一个换行符。

从输出中删除std::endl