嗨,我正在开发一个应用程序,我想创建一个读取文件 ex 的函数。
readFiles()
{
f1, f2=NULL, f3=NULL;
}
但我很难加载多个文件。我想创建一个函数来读取文件并将它们设置为指定的变量,以便在我的程序中的其他函数中使用。任何帮助或想法都会很棒。再次感谢!附言。这不是家庭作业。
我个人会从编写一个可以读取一个文件的函数开始。从另一个知道需要读取哪些文件的函数调用该函数。
例如,假设文件不是巨大的(千兆字节大),您可以执行一个将文件读入单个字符串的函数:
std::string readfile(std::string name)
{
ifstream f(name.c_str());
std::stream tmp;
std::stream res;
while(getline(f, tmp)
{
res += tmp;
}
return res;
}
void somefunc()
{
std::string file1 = readfile("file1.txt");
std::string file2 = readfile("file2.txt");
}
当然,如果文件是整数列表,您可能希望将数据读入整数向量。如果内容更复杂,读入向量、结构或类也可以。但基本原则适用[当然,假设几个文件具有相同的一般内容类型]。
你看过了ifstream
吗?看这里:http ://www.cplusplus.com/reference/fstream/ifstream/ifstream/
您是将流传递给函数还是实际文件名?您需要为多个文件创建多个流,除非您想一次处理一个文件。你必须做这样的事情:
ifstream nameOfStream ("Name of File");
创建流。您甚至不需要在函数中执行此操作。如果你有所有的文件名,你可以这样做:
ifstream stream1(file1);
ifstream stream2(file2);
ifstream stream3(file3);
编辑:如果你想用一个流来做:
ifstream stream1(file1);
//Do something with stream
stream1.close();
stream1.open(file2);