如何创建读入多个文件的函数?

时间:2013-04-01 12:45:56

标签: c++ function

您好我正在开发一个应用程序,我想创建一个读取文件的函数 恩。

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

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

2 个答案:

答案 0 :(得分:2)

我个人会先写一个可以读取一个文件的函数。从另一个知道需要读取文件的函数的函数调用。

例如,假设文件不是很大(gigabytes large),你可以做一个将文件读入单个字符串的函数:

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

当然,如果文件是整数列表,您可能希望将数据读入整数向量。如果内容更复杂,读入矢量或结构或类也是有效的。但基本原则适用[假设几个文件具有相同的一般内容类型,当然]。

答案 1 :(得分:1)

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