有时需要批处理一个文件列表,如果编写手动的文件流创建和关闭比较麻烦,则可以创建文件操作零临时变量来自动打开和关闭。
代码如下:
#include <iostream>
#include <fstream>
using namespace std;
int main(){
vector<string> filenames = {"1.txt", "2.txt", "3.txt"};
for(auto name : filenames){
ifstream in(name);
if(in){
cout << "文件打开成功可以进行对应的操作"<<endl;
}else{
cout << "文件打开失败" << endl;
}
}
return 0;
}
解析: 因为in(文件操作流)是for循环的局部变量,它在每个循环步中都要被创建和销毁一次。当一个fstream文件流对象离开作用域时,与之关联的文件会自动创建和关闭。