c++文件读写操作

简介: c++文件读写操作

导航:


1.文件类型,打开方式

2.文本文件或者二进制读写操作

3.注意点


———————————————————————————————————

文件类型:


文本文件-以文类ASCII形式存储

二进制文件-二进制形式


创建流对象有三种方式:


ofstream——进行写操作

ifstream——进行读操作

fstream——进行读写操作


写文件大致过程:

1.头文件


#include <fstream>


2.创建流对象


ofstream ofs;


3.打开方式


ofs.open("文件路径",打开方式)


4.写入


ofs<<你要写的内容


5.关闭文件


ofs.close();


———————————————————————————————————

读文件大致过程

1.头文件


#include <fstream>


2.创建流对象


ifstrean ifs;


3.打开方式;判断是否打开文件


ifs.open("打开路径",打开方式)
if(!ifs.is_open())
{
  cout<<"打开文件失败"<<endl;
}


4.读数据


有4种读取方式,见下文


5.关闭文件

ifs.close();


打开方式:


ios::in 为读文件而打开文件

ios::out 为写文件而打开文件

ios::ate 初始位置:文件尾

ios:app 追加方式写

ios::tranc 文件存在删除再建

ios::binary 二进制方式(读写二进制要用的)


———————————————————————————————————

注意:若要进行二进制写文件,要加一个|,例如:ios::binary | ios::out (步骤3中的打开方式)


文本文件写操作:


#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
  //1.包含头文件
  //2.创建流
  ofstream ofs;
  //3.打开方式
  ofs.open("test.txt",ios::out);  //进行写操作而打开文件
  //4.读入
  ofs<<"姓名:张三"<<endl;
  //5.关闭文件
  ofs.close();
  system("pause");
}



文本文件读操作:


#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
  //创建流对象
  ifstream ifs;
  //打开方式
  ifs.open("test.txt",ios::in);
  if(!ifs.is_open())
  {
  cout<<"文件打开失败"<<endl;
  }
  //写入数据
  /*第一种
  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<<c;
  }
  //关闭文件
  ifs.close();
  system("pause");
}



包含四种操作进行读


二进制文件写操作:


#include <iostream>
#include <fstream>
#include <string>
using namespace std;
class Person
{
public:
  char name[1024]; //尽量用数组来写
  int age;
};
int main()
{
  //1.包含头文件
  Person p = {"张三",18};
  //2.创建流
  ofstream ofs("person.txt",ios::out |ios::binary);
  //3.打开方式
  //ofs.open("person.txt",ios::out |ios::binary);
  //4.写入
  ofs.write((const char *)&p,sizeof(p));
  //5.关闭文件
  ofs.close();
  system("pause");
}


二进制文件读操作:


#include <iostream>
#include <fstream>
#include <string>
using namespace std;
class Person
{
public:
  char name[1024]; //尽量用数组来写
  int age;
};
int main()
{
  //1.包含头文件
  Person p = {"张三",18};
  //2.创建流
  ofstream ofs("person.txt",ios::out |ios::binary);
  //3.打开方式
  //ofs.open("person.txt",ios::out |ios::binary);
  //4.写入
  ofs.write((const char *)&p,sizeof(p));
  //5.关闭文件
  ofs.close();
  system("pause");
}



注意点:


1.读文件时要判断是否文件存在

2.读写方式若是二进制时,打开方式要加上| ios::binary

3.进行二进制写文件中尽量用数组进行保存数据,再写入


相关文章
|
6月前
|
C++ Windows
.NET Framework安装不成功,下载`NET Framework 3.5`文件,Microsoft Visual C++
.NET Framework常见问题及解决方案汇总,涵盖缺失组件、安装失败、错误代码等,提供多种修复方法,包括全能王DLL修复工具、微软官方运行库及命令行安装等,适用于Windows系统,解决应用程序无法运行问题。
673 3
|
12月前
|
存储 算法 安全
基于哈希表的文件共享平台 C++ 算法实现与分析
在数字化时代,文件共享平台不可或缺。本文探讨哈希表在文件共享中的应用,包括原理、优势及C++实现。哈希表通过键值对快速访问文件元数据(如文件名、大小、位置等),查找时间复杂度为O(1),显著提升查找速度和用户体验。代码示例展示了文件上传和搜索功能,实际应用中需解决哈希冲突、动态扩容和线程安全等问题,以优化性能。
|
Linux C++
Linux c/c++文件的基本操作
在Linux环境下使用C/C++进行文件的基本操作,包括文件的创建、写入、读取、关闭以及文件描述符的定位。
214 0
Linux c/c++文件的基本操作
|
C++ 内存技术
[转]Visual C++内嵌swf文件并播放
[转]Visual C++内嵌swf文件并播放
|
Linux C++
Linux c/c++文件虚拟内存映射
这篇文章介绍了在Linux环境下,如何使用虚拟内存映射技术来提高文件读写的速度,并通过C/C++代码示例展示了文件映射的整个流程。
406 0
|
Linux C++
Linux c/c++文件移动
这篇文章介绍了在Linux环境下,使用C/C++语言通过命令方式和文件操作方式实现文件移动的方法。
355 0
|
Linux API C++
超级好用的C++实用库之文件目录操作
超级好用的C++实用库之文件目录操作
243 0
|
JavaScript 前端开发 测试技术
一个google Test文件C++语言案例
这篇文章我们来介绍一下真正的C++语言如何用GTest来实现单元测试。
184 0
|
监控 编译器 C++
【代码讲解】【C/C++】获取文件最后修改的时间(系统时间)
【代码讲解】【C/C++】获取文件最后修改的时间(系统时间)
715 0
|
安全 C++ Windows
Windows下C++使用gRPC(Qt和VS,含文件包和使用方法)
Windows下C++使用gRPC(Qt和VS,含文件包和使用方法)