首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字符串流中的行尾

字符串流中的行尾
EN

Stack Overflow用户
提问于 2013-11-24 06:36:00
回答 1查看 1.4K关注 0票数 1

假设我们有一个这样的文件:

代码语言:javascript
复制
1 2
3 4 5
6 7 8

通常我们会做一个getline(),然后使用字符串流在行内进行解析。然而,getline返回了一个字符串,我们为该字符串创建了一个string string。有没有可能在一个字符串流中获得文件的全部内容,然后解析标记,同时知道行尾在哪里?

EN

回答 1

Stack Overflow用户

发布于 2013-11-24 06:42:56

将整个文件放入std::string中并将其放入std::istringstream并读取似乎没有多大意义:您可以直接从std::ifstream读取。如果你真的想把一个文件放到std::string中,这里有几个变种:

代码语言:javascript
复制
std::string s0{ std::istreambuf_iterator<char>(in), std::istreambuf_iterator<char>() };
std::string s1( (std::istreambuf_iterator<char>(in)), std::istreambuf_iterator<char>() );
std::ostringstream out; out << in.rdbuf(); std::string s2 = out.str();

显然,您只需要使用这些方法中的一种,因为每种方法都将使用输入流in。一旦您将文件放入std::string中,您就可以从它构造std::istringstream

我想你也可以使用

代码语言:javascript
复制
std::stringstream stream;
stream << in.rdbuf();
stream.seekg(std::ios_base::beg, 0);

避免了首先将内容读入std::string的需要。

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

https://stackoverflow.com/questions/20168768

复制
相关文章

相似问题

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