如何创建一个读取多个文件的函数

How to create a function that reads in multiple files?

本文关键字:函数 读取 文件 何创建 创建 一个      更新时间:2023-10-16

嗨,我正在开发一个应用程序,我想创建一个读取文件的函数交货。

readFiles()
{ 
   f1, f2=NULL, f3=NULL;
} 

但是我很难加载多个文件。我想做一个函数,读取文件并将它们设置为一个指定的变量,以便在我的程序中的其他函数中使用。任何帮助或想法都会很棒。再次感谢!这不是家庭作业

我个人会从编写一个可以读取一个文件的函数开始。从另一个知道需要读取哪些文件的函数调用该函数。

例如,假设文件不是非常大(gb大),您可以执行一个函数,将文件读入单个字符串:

 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");
 }

当然,如果文件是一个整数列表,您可能希望将数据读入整数向量。如果内容比较复杂,读入vector或struct或类也可以。但基本原则仍然适用(当然,假设这几个文件具有相同的一般内容类型)。

您看过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);