C++ 文件操作

程序运行时产生的数据都属于临时数据,程序一旦运行结束,数据都会被释放,通过文件可以将数据持久化

C++ 中对文件操作需要包含头文件 < fstream >

文件类型分为两种:

  • 文本文件: - 文件以文本的ASCLL码形式存储在计算机中;
  • 二进制文件:- 文件以文本的二进制形式存储在计算机中;
    (用户不能直接读懂它们)

操作文件的三大类:

  1. ofstream: 写操作
  2. ifstream: 读操作
  3. fstream: 读写操作

文本文件

写文件

写文件步骤如下:

  1. 包含头文件
    #include < fstream >
  2. 创建流对象
    ofstream ofs;
  3. 打开文件
    ofs.open(“文件路径”,打开方式);
  4. 写数据
    ofs<<“写入的数据”;
  5. 关闭文件
    ofs.close();

文件打开方式:

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

注意:文件打开方式可以配合使用,利用 | 操作符
例如:用二进制方式写文件 ios::out | ios::binary

读文件

读文件步骤如下:

  1. 包含头文件
    #include < fstream >
  2. 创建流对象
    ifstream ifs;
  3. 打开文件并判断文件是否打开成功
    ifs.open(“文件路径”,打开方式);
  4. 读数据
    四种读取方式
  5. 关闭文件
    ifs.close();

文件的四种读取方式:

char buf[1024] = {0};
while( ifs >> buf ){
	cout << buf << endl;
}
char buf[1024] = {0};
while( ifs.getline(buf, sizeof(buf)) ){
	cout << buf << endl;
}
string buf;
while(getline(ifs,buf)){
	cout << buf << endl;
}
char c;
while( (c = ifs.get()) != EOF ){
	cout << buf << endl;
}

EOF == end of file ( 文件尾部 )

二进制文件

以二进制的方式对文件进行读写操作;
打开方式要指定为 ios::binary

写文件

写文件步骤如下:

  1. 包含头文件
    #include < fstream >
  2. 创建流对象
    ofstream ofs;
  3. 打开文件
    ofs.open(“文件路径”,ios::out | ios::binary );
  4. 写数据
    Person p = new Person(“张三”,17);
    ofs.write((const char*)&p,sizeof(Person) );
  5. 关闭文件
    ofs.close();

读文件

读文件步骤如下:

  1. 包含头文件
    #include < fstream >
  2. 创建流对象
    ifstream ifs;
  3. 打开文件并判断文件是否打开成功
    ifs.open(“文件路径”,ios::in | ios::binary );
  4. 读数据
    Person p;
    ifs.read((const *)&p,sizeof(Person))
  5. 关闭文件
    ifs.close();

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...