用C ++读取文件

时间:2018-03-20 22:26:17

标签: c++

我正在寻找一种方法来阅读C ++中的文件我可以写文件,但是我在这里坚持:

ifstream readfile;
readfile.open("C:/Users/Crazy/Desktop/Useless.txt")

我见过人们做过以下事情:

#include <iostream>
#include <fstream>

using namespace std;

int main() {

    ifstream myReadFile;
    myReadFile.open("text.txt");
    char output[100];
    if (myReadFile.is_open()) {
        while (!myReadFile.eof()) {

            myReadFile >> output;
            cout << output;

        }
    }
    myReadFile.close();
    return 0;
}

但是在

char output[100];

我希望阅读整篇文章。

另外,我只想阅读它,而不是检查它是否已经打开,而不是检查错误。我只想阅读整件事,而只是整篇文章。

1 个答案:

答案 0 :(得分:1)

如果您想将整个文件读入变量,您需要:
1.以字符确定文件大小 2.使用std::vector并声明该大小的向量,
   或使用new运算符并动态分配char数组 3.使用ifstream::read读取整个文件 4.关闭ifstream
5.记得delete char缓冲区。

我建议使用OS API来确定文件长度。

编辑1:示例

#include <iostream>
#include <fstream>
#include <vector>
std::ifstream my_file("my_data");
my_file.seekg(0, std::ios_base::end); // Seek to end of file.
const unsigned int file_length = my_file.tellg();
my_file.seekg(0);
std::vector<char> file_data(file_length);
my_file.read(&file_data[0], file_length);