-2

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

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

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

4

2 回答 2

2

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

例如,假设文件不是巨大的(千兆字节大),您可以执行一个将文件读入单个字符串的函数:

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

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

于 2013-04-01T13:00:52.570 回答
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);
于 2013-04-01T12:53:19.697 回答