文件操作,对文件进行创建,读,写

47 篇文章 0 订阅

在对文件进行操作过程中,通常使用的标准库为fstream,在使用中,存在两种数据流,ofstream和ifstream数据类型,可以实现对数据的输入和输出,即读写操作
标准库的头文件的引入:

#include<fstream>
ofstream f1;//该数据类型表示输出文件流,用于创建并向文件中写入信息
ifstream f2;//该数据类型表示输入文件流,用于从文件读取信息 
//f1,f2表示变量

封装对文件的读请求

void Read()
{
    f2.open(file.c_str(),ios::in);//定义文件模式为读
    while(1)
    {
        getline(f2,s);//一行一行读取文件内容
        if(!f2.eof())  //fstream.eof()如果读到文件结束符了返回真,否则返回假
        {
            cout<<s<<endl;
        }
        else break;
     }
    f2>>n;
    //假如文件中有一个数字,想要在程序中显示这个数字的平方,一定要先输入流将数字输入到文件中,见上
    cout<<n*n<<endl;
    f2.close();
}

封装对文件的写请求

void Write()
{
    string file;//文件名
    string s;//要写入文件的字符串
    f1.open(file.c_str(),ios::out);
    //.c_str()是因为文件名file被声明为string,而f1.open()参数要char[]类型,所以要用.c_str()转换一下
    //ios::out是定义文件被打开的模式,"out"指写入模式,这种方式会将原有的内容覆盖
    f1.open(file.c_str(),ios::app|ios::out);//这种模式会在原来的内容上追加
    f1<<s<<endl;
    f1.close();
}

二进制文件的读写

fstream f;//二进制文件读写只需要一个变量

写数据

void Write()
{
    string::size_type len;
    len=s.size();
    f.open(file,ios::in|ios::out|ios::binary);//如果是类的话以上操作可以放在字符串中
    //ios模式把写和读模式放在一起,还加了一个ios::binary这个是规定Windows的二进制文件换行符为一个\n
    f.write((char*)s.c_str(),len);//第一个参数是字符指针类型,第二个是要写的字符串长度
}

读数据

void Read()
{
    string::size_type len;
    string s1;
    f.seekg(0,ios::end);//将指针移动到文件尾
    len=f.tellg();//得到当前指针位置(读取流)
    s1.resize(len);//resize第一个参数(此参数)是重新设置的内容长度,第二个参数是初始化值
    f.seekg(0,ios::beg);
    f.read((char*)s1.c_str(),len);
    cout<<s1<<endl;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值