我想将 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(我的组件的核心)将在控制台上打印什么。
最佳答案
您还在字符串中插入了一个 std::endl
。这将向字符串中添加一个换行符。
从输出中移除 std::endl
。
关于c++ - 字符串流输出比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40887820/