当前位置: 当前位置:首页 > 休闲 > C++ 文件操作 正文

C++ 文件操作

2024-05-06 00:49:58 来源:口口声声网 作者:百科 点击:667次

C++ 文件操作

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] = ;while( ifs >>buf ){	cout << buf << endl;}
char buf[1024] = ;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();
作者:焦点
------分隔线----------------------------
头条新闻
图片新闻
新闻排行榜