1. ホーム
  2. c++

[解決済み] ファイルを一行ずつ読んだり、テキストファイル全体を一度に読むには?

2022-03-03 05:06:40

質問

ファイルを紹介するチュートリアルに参加しています(ファイルからの読み込みとファイルへの書き込みの方法)。

まず第一に、これは宿題ではなく、私が求めている一般的なヘルプです。

1単語ずつ読む方法は知っていますが、1行ずつ読む方法、テキストファイル全体を読む方法は知りません。

1000字のファイルだったらどうする?ファイル全体を一語一語読むのは現実的ではありません。

Read"という名前のテキストファイルには、次のような内容が含まれています。

I love to play games
I love reading
I have 2 books

これが今までの成果です。

#include <iostream>
#include <fstream>

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

  inFile >>

行ごと、単語ごとに読むのではなく、ファイル全体を一度に読む方法はないでしょうか?

どのように解決するのですか?

を使用することができます。 std::getline :

#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リファレンス .

テキストファイル全体を読み込む最も簡単な方法は、取得した行を連結することでしょう。

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');
}