# 文件流對象的使用:
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;
}
輸出: