【C++11】文件操作ifstream&ofstream

文件输入流

创建ifstream对象

使用ifstream类创建ifstream对象,所获取的对象能够像cin一样使用>>运算符从所绑定文件中取数据。

// 创建一个未绑定的文件输入流
ifstream in;

// 绑定文件输入流文件为1.txt
ifstream in("1.txt");
读取文件数据

使用ifstream对象读取文件中的数据:

ifstream in("1.txt");
if(in) { // 检察打开是否成功
    string s;
    while(in >> s) {
        // 将文件中的数据读出并存入s中
        in >> s;
        // 使用标准输出cout进行输出
        cout << s << endl;
    }
}

运行效果:
在这里插入图片描述

文件输出流

文件流的打开模式
模式含义
in只读模式(ifstream默认模式)
out只写模式(只读模式会抛弃文件已有数据,ofstream默认模式)
appappend追加,向文件末尾追加数据
ateat the end定位至文件尾
binary以二进制形式打开文件
创建ofstream对象

使用ofstream类创建ofstream对象,所获取的对象能够像cout一样使用<<运算符向所绑定文件中数据。

// 创建一个未绑定的文件输出流
ofstream out;
// 进行绑定以及打开模式指定
out.open("2.txt", ios::out);

// 绑定文件输入流文件为1.txt
// 并指定打开方式为binary和app(使用|连接多个模式)
ofstream out("2.txt", ios::binary | ios::app);
写入文件数据

使用ofstream向文件中写数据:

ofstream out("1.txt");
if(out) { // 检查是否失败
    for (int i = 0; i < 999; ++i) {
        out << "爱你" << i + 1 << "遍!" << endl;
    }
}
// 注意:关闭的是文件而非输出流对象
// 可以通过out.open()重新绑定文件
out.close();

运行结果:
在这里插入图片描述

文件输入输出示例

一个小实践:使用ifstream对象读取C盘下的一张图片,并使用ofstream将其存入同代码目录下的"3.png"中。

ifstream in("C:/Users/zhizi/Pictures/pic.png", ios::binary);
ofstream out("3.png", ios::app | ios::binary);
string s;
while(getline(in, s)) {
    out << s << endl;
}

运行效果(图片来源网络,侵权联系删除):在这里插入图片描述

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sophon、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值