-5

私の質問は、.txt ファイルの内容をchar*名前付きの m_str に C++ で保存するにはどうすればよいですか?

私のファイルには、保持したい非常に定義された形式があることに注意してください。行を一緒にマージしたくありません。ライン 1 の 1 つをライン 1 に残し、ライン 2 の 1 つをライン 2 に残したいのです。最終的にはchar*それをシリアライズしてネットワーク経由で送信し、ノードがそれを受信するとデシリアライズするからです。次に、コンテンツをファイルに入れ、元のファイルと同じように行を読み取ります。

ありがとうございました。

4

2 に答える 2

7

ベクトルは次のように使用できます。

std::ifstream file("file.txt");
std::istreambuf_iterator<char> begin(file), end;
std::vector<char> v(begin, end); //it reads the entire file into v

char *contentOfTheFile= &v[0]; 

ファイルの内容は に保存されcontentOfTheFileます。それを使用することも、変更することもできます。

于 2012-06-02T20:59:45.357 に答える
0
#include <vector>
#include <fstream>
#include <stdexcept>

void foo() {
  std::ifstream stream("file.txt");
  if (!stream) throw std::runtime_error("could not open file.txt.");
  std::vector<char> str(std::istreambuf_iterator<char>(stream),
                        (std::istreambuf_iterator<char>()));
  char* m_str = str.data();
}

あなたが必要とすることをすべきです。

于 2012-06-02T20:59:37.227 に答える