-5

我的问题是:如何char*在 C++ 中将 .txt 文件的内容存储在名为 m_str 的文件中?

请注意,我的文件具有我想要保留的非常明确的格式。我不想将这些行合并在一起。我希望第 1 行保持在第 1 行,第 2 行保持在第 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 回答