如何在char *中存储文件

时间:2012-06-02 20:56:08

标签: c++ c arrays char

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

请注意,我的文件有一个非常明确的格式,我想保留。我不想将这些线合并在一起。我希望第1行保留在第1行,第2行是什么,保留在第2行。因为最终我将序列化char*并通过网络发送,并且当节点收到时它,它将反序列化它,然后将内容放在一个文件中,并读取原始文件中的行。

谢谢。

2 个答案:

答案 0 :(得分:7)

您可以将vector用作:

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中。您可以使用它,并且修改它。

答案 1 :(得分: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();
}

应该做你需要的。