使用文件流对象
const string filePath{"D:\\LearnProject\\data\\"};
// 直接构造且以读取模式打开文件
ifstream if1(filePath + "FileData.txt");
string line;
vector<string> strvec;
if( if1 ) { // 这种判断方法和基本IO流一致
getline(if1, line);
strvec.push_back(line);
}
// 默认构造,调用open函数以读取模式打开文件, 且用is_open判断打开是否成功
ifstream if2;
if2.open(filePath + "FileData.txt");
if( if2.is_open() ) {
getline(if1, line);
strvec.push_back(line);
}
// 当fstream对象被销毁时,会自动调用close
const int fileNum = 10;
for(int i=0; i<fileNum; i++) {
ofstream of(filePath + to_string(i) + ".txt");
for( string& line : strvec ) {
of << line << endl;
}
}
文件模式
// 文件模式
/*
* in 输入,以读方式打开
* out 输出,以写方式打开
* app 每次写操作前均定位到文件尾,即追加模式
* ate 打开文件后立即定位到文件尾
* trunc 截断文件,即覆盖模式
* binary 二进制模式
* */
// 写出默认模式,如下三条语句等价
ofstream of1(filePath);
ofstream of2(filePath, ofstream::out);
ofstream of3(filePath, ofstream::out | ofstream::trunc);
// 打开文件时候指定模式
ofstream of4; // 未指定文件模式
of4.open(filePath, ofstream::app); // out和app模式
参考
C++ primer中文版 第五版 第8章