读取C+中的文件+; 我正在寻找一种方法来读取C++中的文件,我可以写文件,但这里是我坚持的地方: ifstream readfile; readfile.open("C:/Users/Crazy/Desktop/Useless.txt")

读取C+中的文件+; 我正在寻找一种方法来读取C++中的文件,我可以写文件,但这里是我坚持的地方: ifstream readfile; readfile.open("C:/Users/Crazy/Desktop/Useless.txt"),c++,C++,我见过人们做过这样的事情: #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()) {

我见过人们做过这样的事情:

#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;
}
我想把整件事都读一遍


另外,我只想读它,不想检查它是否已经打开,也不想检查错误。我只想读取整个文件,并且只读取整个文件。

如果要将整个文件读取到变量中,则需要:
1.以字符为单位确定文件大小。
2.使用
std::vector
并声明该大小的向量,
或者使用
new
操作符动态分配
char
数组。
3.使用
ifstream::read
读取整个文件。
4.关闭
ifstream

5.请记住
删除
字符
缓冲区

我建议使用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);
#包括
#包括
#包括
std::ifstream my_文件(“my_数据”);
my_file.seekg(0,std::ios_base::end);//寻求文件的结尾。
const unsigned int file_length=my_file.tellg();
my_file.seekg(0);
std::矢量文件数据(文件长度);
my_file.read(&file_data[0],文件长度);

在将整个文件读入内存之前,始终要问自己,“我真的需要读入整个文件,还是可以一次读入一行或一块?”好的,我想我会使用
ifstream::read
,但我该如何使用它?为什么要投反对票?这是读取文件的标准过程。如果你在和我说话,我没有投反对票,而是投了反对票。@Katido622:搜索有关如何使用这些文件的参考资料。我不明白。如果您不想检查文件是否已打开,如果文件未打开,您希望发生什么?如果您不想检查错误,那么如果出现错误,您希望发生什么?你不能把手指放在耳朵里唱“啦啦啦啦”来避开这些可能发生的事情……在轨道上轻快地比赛,我做的第一件事就是打开它,最后关闭它。如果我有一个错误,那么,我会测试我能想到的每一件可能的事情,如果我有一个错误,我会修复它,但是如果我有一个错误,我可以解决它。@Katido622:LRO表示类似“文件不存在”的错误,而不是“程序中的错误”。您必须决定如何处理运行时错误。嗯。。。我能应付的。。我想。
#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);