伙计们,我有个小问题。到目前为止,我一直在寻找,但一无所获。
这里有更多的信息:
stringstream report_string;
report_string << "some string here...";
在我的代码中,有各种为report_string变量赋值的条件。
我想检查它是否被赋值。
发布于 2011-11-08 13:45:55
myStream.rdbuf()->in_avail()
可用于获取准备从stringstream
读取的可用字符数,您可以使用该计数来检查stringstream
是否为“空”。我假设您实际上并不是在尝试检查值null
。
例如,如果您想要从stringstream
中提取一个int
,然后查看是否有任何剩余的字符(即.非数字)您可以检查是否为myStream.rdbuf()->in_avail() == 0
。
这和你正在尝试做的事情相似吗?我不确定是否有更好的方法,但我过去也这样做过,对我来说效果很好。
https://en.cppreference.com/w/cpp/io/basic_streambuf/in_avail
编辑:我看到你刚刚更新了你的问题,因为我发了帖子。
发布于 2013-05-03 18:23:26
一种简单的检查方法是查看流的字符串内容是否为空:
#include<assert.h>
#include<sstream>
int main(){
std::stringstream report_string;
report_string << ""; // an empty strin g
//emptiness check of stringstream
assert(report_string.str().empty());
}
发布于 2016-03-31 16:05:42
这种方法是有效的,并且应该也适用于输出字符串:
ostringstream report_string;
if (report_string.tellp() == 0) {
// do something
}
https://stackoverflow.com/questions/8046357
复制相似问题