Day13-C++基础之文件操作

文件操作

复制代码
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
​
class Person{
public:
    char m_Name[64];
    int m_Age;
};
​
int main(){
    //文本文件操作
​
    //写文件
    //1.包含头文件 fstream
    //2.创建流对象
    ofstream ofs;
    //3.指定打开方式
    ofs.open("test.txt",ios::out);//不指定路径会创建在项目文件夹下
    //这里注意:读文件打开方式:ios::in
    //写文件打开方式:ios::out
    //追加方式写文件:ios:app
    //如果文件存在就先删除再创建:ios::trunc
    //二进制方式:ios::binary
    //4.写内容
    ofs<<"name"<<endl;
    ofs<<"Jason"<<endl;
    //5.关闭文件
    ofs.close();
​
    //读文件
    //1.头文件
    //2.创建流对象
    ifstream ifs;
    //3.打开文件,并判断是否打开成功
    ifs.open("test.txt",ios::in);
    if(!ifs.is_open()){
        cout<<"fail to open"<<endl;
        return 0;
    }
    //4.读数据
    char buf[1024]={0};
    while(ifs>>buf){
        cout<<buf<<endl;
    }
    //或者
    char buf1[1024]={0};
    while(ifs.getline(buf,sizeof(buf))){
        cout<<buf<<endl;
    }
    //或者
    string buf2;
    while(getline(ifs,buf2)){
        cout<<buf<<endl;
    }
    //或者
    char c;
    while((c=ifs.get())!=EOF){
        cout<<c;
    }
    //5.关闭文件
    ifs.close();
​
    //二进制文件
    //写文件
    ofstream ofs1;
    ofs1.open("person.txt",ios::out|ios::binary);
    Person p={"Jason",18};
    ofs1.write((const char*)&p,sizeof(Person));//这里将Person类型强转为char
    ofs1.close();
​
    //读文件
    ifstream ifs1;
    ifs1.open("person.txt",ios::in|ios::binary);
    if(!ifs1.is_open()){
        cout<<"文件打开失败"<<endl;
        return 0;
    }
    Person p1;
    ifs1.read((char*)&p,sizeof(Person));
    ifs1.close();
​
    return 0;
}
相关推荐
2601_949146536 分钟前
C语言语音通知API示例代码:基于标准C的语音接口开发与底层调用实践
c语言·开发语言
开源技术16 分钟前
Python Pillow 优化,打开和保存速度最快提高14倍
开发语言·python·pillow
学嵌入式的小杨同学22 分钟前
从零打造 Linux 终端 MP3 播放器!用 C 语言实现音乐自由
linux·c语言·开发语言·前端·vscode·ci/cd·vim
Queenie_Charlie1 小时前
前缀和的前缀和
数据结构·c++·树状数组
mftang2 小时前
Python 字符串拼接成字节详解
开发语言·python
jasligea2 小时前
构建个人智能助手
开发语言·python·自然语言处理
kokunka2 小时前
【源码+注释】纯C++小游戏开发之射击小球游戏
开发语言·c++·游戏
云栖梦泽3 小时前
易语言开发从入门到精通:补充篇·网络编程进阶+实用爬虫开发·API集成·代理IP配置·异步请求·防封禁优化
开发语言
java1234_小锋3 小时前
Java高频面试题:SpringBoot为什么要禁止循环依赖?
java·开发语言·面试
铅笔侠_小龙虾3 小时前
Flutter Demo
开发语言·javascript·flutter