首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何逐行读取文件或一次读取整个文本文件?

如何逐行读取文件或一次读取整个文本文件?
EN

Stack Overflow用户
提问于 2012-10-24 01:05:32
回答 9查看 428K关注 0票数 94

我在一个介绍文件的教程中(如何从文件读取和写入文件)

首先,这不是作业,这只是我寻求的一般帮助。

我知道如何一次读一个单词,但我不知道如何一次读一行,或者如何读整个文本文件。

如果我的文件包含1000个单词怎么办?逐字阅读整个文件是不切实际的。

我的文本文件名为"Read“,其中包含以下内容:

代码语言:javascript
复制
I love to play games
I love reading
I have 2 books

这是我到目前为止所完成的工作:

代码语言:javascript
复制
#include <iostream>
#include <fstream>

using namespace std;
int main (){
   
  ifstream inFile;
  inFile.open("Read.txt");

  inFile >>

有没有可能一次读取整个文件,而不是单独读取每行或每个单词?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2012-10-24 01:09:52

您可以使用std::getline

代码语言:javascript
复制
#include <fstream>
#include <string>

int main() 
{ 
    std::ifstream file("Read.txt");
    std::string str; 
    while (std::getline(file, str))
    {
        // Process str
    }
}

还要注意的是,最好是在构造函数中使用文件名构造文件流,而不是显式地打开(关闭也是如此,让析构函数来做这项工作)。

有关std::string::getline()的更多文档可以在CPP Reference上阅读。

读取整个文本文件的最简单方法可能就是连接这些检索到的行。

代码语言:javascript
复制
std::ifstream file("Read.txt");
std::string str;
std::string file_contents;
while (std::getline(file, str))
{
  file_contents += str;
  file_contents.push_back('\n');
}  
票数 176
EN

Stack Overflow用户

发布于 2013-10-29 09:04:06

我知道这是一个非常非常老的帖子,但我也想指出另一种实际上非常简单的方式……下面是一些示例代码:

代码语言:javascript
复制
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main() {

    ifstream file("filename.txt");
    string content;

    while(file >> content) {
        cout << content << ' ';
    }
    return 0;
}
票数 22
EN

Stack Overflow用户

发布于 2012-10-24 01:37:54

我认为您可以使用istream .read()函数。您只需使用合理的块大小循环并直接读取内存缓冲区,然后将其附加到某种类型的内存容器(如std::vector)。我可以写一个例子,但我怀疑你是否想要一个完整的解决方案;如果你需要任何额外的信息,请告诉我。

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

https://stackoverflow.com/questions/13035674

复制
相关文章

相似问题

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