21天好习惯 第一期-20

文件操作

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

文件操作需包含头文件

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

//文件操作三大类
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;
}
上一篇:ios-WebViewJavascriptBridge学习


下一篇:1012 数字分类 (20 分)