我的问题是:如何将.txt文件的内容存储在char*
名为m_str的C ++中?
请注意,我的文件有一个非常明确的格式,我想保留。我不想将这些线合并在一起。我希望第1行保留在第1行,第2行是什么,保留在第2行。因为最终我将序列化char*
并通过网络发送,并且当节点收到时它,它将反序列化它,然后将内容放在一个文件中,并读取原始文件中的行。
谢谢。
答案 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();
}
应该做你需要的。