首页 > 其他 > 详细

文件读写

时间:2021-08-25 23:45:47      阅读:17      评论:0      收藏:0      [点我收藏+]

和文件有关系的输入输出类主要在fstream.h这个头文件中被定义,在这个头文件中主要被定义了三个类,由这三个类控制对文件的各种输入输出操作,他们分别是ifstream、ofstream、fstream,其中fstream类是由iostream类派生而来,他们之间的继承关系见下图所示:

技术分享图片

 

打开并写入文件

  • ofstream  ofs
  • open 指定打开方式
  • isopen 判断是否打开成功
  • ofs << “数据”
  • ofs.close
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
#include <fstream>      //读写文件

void test01()
{
    // 打开方式1:
    //ofstream ofs("./test.txt", ios::out | ios::trunc);  //在定义文件流对象时指定参数
    //打开方式2:
    ofstream ofs2;                                      //定义ofstream类(输出文件流类)对象
    ofs2.open("./test.txt", ios::out | ios::trunc);    //使文件流与test.txt文件建立关联
    if (!ofs2.is_open())        //判断是否打开成功
    {
        cout << "打开失败" << endl;
    }

    ofs2 << "姓名:xxx" << endl;
    ofs2 << "年龄: 18" << endl;
    ofs2 << "性别: 男" << endl;
}

int main()
{
    test01();
    system("Pause");
    return 0;
}

结果:

技术分享图片

读取文件

  • ifstream  ifs
  • 指定打开方式 ios::in
  • isopen判断是否打开成功
  • 三种方式读取数据
void test02()
{
    ifstream ifs;
    ifs.open("./test.txt", ios::in);
    //判断是否打开成功
    if (!ifs.is_open())
    {
        cout << "打开失败" << endl;
    }
    //第一种方式
    char buf[1024];
    while (ifs >> buf) //按行读取
    {
        cout << buf << endl;
    }
}
void test03()
{
    //第二种方式
    ifstream ifs;
    ifs.open("./test.txt", ios::in);
    char buf[1024];
    while (!ifs.eof()) //eof  读到文件末尾
    {
        ifs.getline(buf, sizeof(buf));
        cout << buf << endl;
    }
}
void test04()
{
    //第三种 不同见 按单个字符读取
    ifstream ifs;
    ifs.open("./test.txt", ios::in);
    char c;
    while ( (c = ifs.get()) != EOF) //EOF 文件末尾
    {
        cout << c;
    }
}

结果:

技术分享图片

 

文件读写

原文:https://www.cnblogs.com/yifengs/p/15186028.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!