【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;
}
输出:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值