首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检查StringStream变量是否为空?

如何检查StringStream变量是否为空?
EN

Stack Overflow用户
提问于 2011-11-08 13:32:51
回答 8查看 73.7K关注 0票数 55

伙计们,我有个小问题。到目前为止,我一直在寻找,但一无所获。

这里有更多的信息:

代码语言:javascript
运行
复制
stringstream report_string;

report_string << "some string here...";

在我的代码中,有各种为report_string变量赋值的条件。

我想检查它是否被赋值。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 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

编辑:我看到你刚刚更新了你的问题,因为我发了帖子。

票数 59
EN

Stack Overflow用户

发布于 2013-05-03 18:23:26

一种简单的检查方法是查看流的字符串内容是否为空:

代码语言:javascript
运行
复制
#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());
}
票数 14
EN

Stack Overflow用户

发布于 2016-03-31 16:05:42

这种方法是有效的,并且应该也适用于输出字符串:

代码语言:javascript
运行
复制
ostringstream report_string;

if (report_string.tellp() == 0) {
    // do something
}
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8046357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档