将整个.txt文件复制到c ++中的char数组中

时间:2016-06-02 10:14:14

标签: c++ arrays file char

我试图将整个.txt文件复制到char数组中。 我的代码有效但它只检索要打开的文件中的最后一行。 这是我的代码,非常感谢

#include <fstream>
using namespace std;
std::ifstream fileToRead;
unsigned char array[512];   
fileToRead.open("test.txt");
if(fileToRead.is_open()){
    while(!fileToRead.eof()){
        fileToRead >> array;
    }
fileToRead.close();
}
printf("%s\n", array);

2 个答案:

答案 0 :(得分:0)

您正在重复地在数组的开头读取一行,没有偏移量以允许以前的内容。因此,它总是覆盖先前的读取输入。

许多操作系统允许您将文件映射到数组的地址空间。这可能会快得多。

答案 1 :(得分:0)

你每次只重写你的数组。在第一步,你在数组中写第一行,然后在数组中放入第二行,依此类推。所以最后你把最后一行放在你的数组中。运营商&gt;&gt;不是连接所有的行,它只是重写它。 你可以声明vector,然后你可以写一些想法 std ::&gt; allLines;

fileToRead.open("test.txt");
............
std::string temp;
fileToRead >> temp;
allLines.push_back(tmp);