如何将文件存储在字符中* > >我的问题>:如何将一个.txt文件的内容存储在 char */COD>中命名为MySTR,在C++?< /p>中

如何将文件存储在字符中* > >我的问题>:如何将一个.txt文件的内容存储在 char */COD>中命名为MySTR,在C++?< /p>中,c++,c,arrays,char,C++,C,Arrays,Char,请注意,我的文件有一个非常明确的格式,我想保留。我不想把这些线合并在一起。我想让一条线留在一号线,让一条线留在二号线。因为最终我将序列化该char*并通过网络发送,当节点接收到它时,它将对其进行反序列化,然后将内容放入一个文件中,并像在原始文件中一样读取行 多谢各位 #包括 #include <vector> #include <fstream> #include <stdexcept> void foo() { std::ifstream stream

请注意,我的文件有一个非常明确的格式,我想保留。我不想把这些线合并在一起。我想让一条线留在一号线,让一条线留在二号线。因为最终我将序列化该
char*
并通过网络发送,当节点接收到它时,它将对其进行反序列化,然后将内容放入一个文件中,并像在原始文件中一样读取行

多谢各位

#包括
#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();
}
#包括 #包括 void foo(){ std::ifstream流(“file.txt”); 如果(!stream)抛出std::runtime_错误(“无法打开文件.txt”); std::vector str(std::istreambuf_迭代器(流), (std::istreambuf_迭代器()); char*m_str=str.data(); }
应该做你需要做的。

你可以使用向量作为:

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]; 
std::ifstream文件(“file.txt”);
istreambuf_迭代器开始(文件),结束;
标准::向量v(开始,结束)//它将整个文件读入v
char*contentoffile=&v[0];

文件的内容存储在
contentoffile
中。您可以使用它,也可以对其进行修改。

可能的重复将不起作用
str
不是一个对象;它是一个函数声明。理性;C++分析!代码>标准::向量str(标准::istreambuf_迭代器(流),标准::istreambuf_迭代器(流))是一个函数声明:),编译器可以捕获错误,因为您使用了参数名
stream
两次。@我知道,我只是忘记了。谢谢nawaz的回答,您发布的代码片段是否与将文件保存在char*中相同?它会在不合并行的情况下读取文件吗?@pachedsour:你为什么不尝试一下,自己找出问题的答案?实验是学习的一部分。