字符串流输出比较
String stream output compare
我想将 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;
}
不相等。我有根据的猜测是宽度以某种方式使用某种标志或其他类型的指示符来替换字符串中的一堆空格。但我不确定,也没有在 google 上找到任何有用的信息。有谁知道为什么我不能比较那个(sstream.str() 和目标字符串)?
目标是测试 stringstream(我的组件的核心)将在控制台上打印什么。
您还在字符串中插入了 std::endl
。这将向字符串添加一个换行符。
从输出中删除 std::endl
。
我想将 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;
}
不相等。我有根据的猜测是宽度以某种方式使用某种标志或其他类型的指示符来替换字符串中的一堆空格。但我不确定,也没有在 google 上找到任何有用的信息。有谁知道为什么我不能比较那个(sstream.str() 和目标字符串)?
目标是测试 stringstream(我的组件的核心)将在控制台上打印什么。
您还在字符串中插入了 std::endl
。这将向字符串添加一个换行符。
从输出中删除 std::endl
。