我正在寻找一种方法来阅读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];
我希望阅读整篇文章。
另外,我只想阅读它,而不是检查它是否已经打开,而不是检查错误。我只想阅读整件事,而只是整篇文章。
答案 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);