ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

21天好习惯 第一期-20

2021-11-11 12:02:01  阅读:137  来源: 互联网

标签:文件 天好 21 person ios ofs 20 include name


文件操作

程序运行时的数据是临时数据,程序运行后会被释放。通过文件可以使数据得以保存。

文件操作需包含头文件

文件类型:文本文件、二进制文件

//文件操作三大类
ofstream//读操作
ifstream//写操作
fstream//读写操作

文本文件

写文件

步骤:

1、创建头文件 #include

2、创建流对象 ofstream ofs

3、打开文件 ofs.open(参数1(路径),参数2(打开方式));

4、写文件 ofs << “写入的数据”

5、关闭文件 ofs.close();

打开方式解释
ios::in读文件打开文件
ios::out写文件打开文件
ios::ate初始位置:文件尾
ios::app​追加方式写文件
ios::trunc若文件存在,先删除在创建
ios::binary二进制方式

文件打开方式可以配使用,利用操作符|

读文件

步骤

1、创建头文件 #include

2、创建流对象 ifstream ifs

3、打开文件并判断文件打开是否成功 ofs.open(参数1(路径),参数2(打开方式));

4、读数据

5、关闭文件 ifs.close();

ifstream ifs;
//读文件的方式
/*方式一*/
char a[100] = {0};//创建空的数组
while(ifs >> a)//读到文件尾停止
{
    cout << a << endl;
}
/*方式二*/
char a[100] = {0};
while(ifs.getline(a, sizeof(a)))//getline函数有两个参数,参数一表示数组,参数二表示读取字符个数
{
    cout << a << endl;
}
/*方式三*/
string ch;
while(getline(ifs, ch))
{
    cout << ch << endl;
}
/*方式四*/
char c;
while((c = ifs.get())!=EOF)
{
    cout << c;
}
cout << endl;

二进制文件

二进制文件能读取、写入自定义数据类型

写文件

步骤:

1、包含头文件 2、创建流对象 3、打开文件 4、写文件 5、关闭文件

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
class person
{
public:
    person(string name, int age)
    {
        this->name = name;
        this->age = age;
    }

private:
    string name;
    int age;
};
void test01()
{
    person p("Jack", 22);
    ofstream ofs;
    ofs.open("test.txt", ios::trunc | ios::binary);
    ofs.write((const char *)&p, sizeof(person));
    ofs.close();
}
int main(void)
{
    test01();
    system("pause");
    return 0;
}

读文件

1、包含头文件 2、创建流对象 3、打开文件,判断文件是否打开成功 4、读文件 5、关闭文件

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
class person
{
public:
    char name[64];
    int age;
};
void test02()
{
    person p;
    ifstream ofs;
    ofs.open("test.txt", ios::in | ios::binary);
    if (!ofs.is_open())
    {
        cout << "wrong" << endl;
        return;
    }
    ofs.read((char *)&p, sizeof(person));
    cout << "name = " << p.name << " "
         << "age = " << p.age << endl;
    ofs.close();
}
int main(void)
{
    test01();
    test02();
    system("pause");
    return 0;
}

标签:文件,天好,21,person,ios,ofs,20,include,name
来源: https://blog.csdn.net/FROdarkness/article/details/121197953

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有