【day0407 C++】文件流對象的應用

# 文件流對象的使用:

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;
}

輸出:


Demo2:

#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;
}
輸出:




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章