# 文件流对象的使用:
1、将文件流对象绑定到文件上;
2、检查文件是否打开成功;
3、将文件流与新文件重新绑定;
4、清除文件流的状态,更好地操作新的文件流对象。
注意:文件名如果使用字符串,要用c风格字符串,或者转化(str.c_str()).
Demo1:
#include <iostream>
#include <fstream>
using namespace std;
/*文件流对象的使用*/
int main()
{
ofstream outFile("test.txt");
outFile << "wo le ge cao\nni ge dan dan!";
outFile.close();
string fileName("main.cpp"); //必须是风格字符串
ifstream inFile(fileName.c_str());
/// ifstream infile; 没有绑定文件
/// infile.open(file.c_str()); //绑定
//逐个读取
cout << "第二次读取文件:\n";
string str;
while (inFile >> str ){
cout << str << endl;
}
inFile.close(); //inFile流状态:EOF
inFile.clear(); //恢复流状态,才能更好操作新的文件
//逐个读取
inFile.open("test.txt");
cout << "\n第二次读取文件:\n\n";
while (inFile >> str){
cout << str << endl;
}
inFile.close();
inFile.clear();
return 0;
}
输出:
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
int main()
{
string str;
vector<string> file;
file.push_back("one.txt");
file.push_back("two.txt");
file.push_back("three.txt");
//使用迭代器
vector<string>::const_iterator it = file.begin();
while (it != file.end()){
ifstream inFile(it->c_str());
if (!inFile){
//打开失败
cerr << "Error: can not open file: " << *it << endl;
++it;
continue;
}
while (inFile >> str){
cout << str << " ";
}
cout << endl;
++it;
inFile.close();
inFile.clear();
}
return 0;
}
输出: