您好我正在开发一个应用程序,我想创建一个读取文件的函数 恩。
readFiles()
{
f1, f2=NULL, f3=NULL;
}
但是我很难加载多个文件。我想创建一个函数来读取文件并将它们设置为指定的变量,以便在我的程序中的其他函数中使用。任何帮助或想法都会很棒。再次感谢! PS。这不是家庭作业。
答案 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);