首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从stringstream读取输入

从stringstream读取输入
EN

Stack Overflow用户
提问于 2011-05-20 08:54:44
回答 4查看 4.7K关注 0票数 3

我正在读取一个大小为5的字符数组的输入,

代码语言:javascript
复制
stringstream ss;

char a[5];

if (!ss.read(a, 5))
{
    // throw exception
}

if (!ss.get(a, 5))
{
   // throw exception
}

这两个函数似乎都起作用了,有什么区别吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-05-20 09:02:17

ss.read将从流中读取5个字节,除非它到达流的末尾。

ss.get将读取4个字节,除非它达到分隔符('\n')或流的末尾。它还将空终止字符串。

票数 7
EN

Stack Overflow用户

发布于 2011-05-20 09:01:24

前者将读取5个字节,只有在遇到EOF时才会提前停止。

后者将读取4个字节(为空终止留出空间),在遇到EOF或'\n'时提前停止。

您想要哪一个取决于您是否打算让a在语义上表现为一个C字符串。

票数 3
EN

Stack Overflow用户

发布于 2011-05-20 09:02:07

http://www.cplusplus.com/reference/iostream/istream/read/ http://www.cplusplus.com/reference/iostream/istream/get/

读取是当您需要数据块时(例如: ss.read( a,2))-这不会将其存储为c字符串,也不会以空值结尾。

Get -从流中提取字符,并将它们作为c字符串存储到从ss开始的数组中。如果也有像'\n‘这样的分隔字符,则执行停止。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6066430

复制
相关文章

相似问题

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