zoukankan      html  css  js  c++  java
  • C++学习之文件的输入输出

    C++学习之文件的输入输出
           一、文件的打开与关闭
           1.输出数据到文件
           文件的操作需要包含fstream头文件,文件的操作对象为ifstream,ofstream类对象,需要首先定义ifstream/ofstream对象(该对象与cout的用法相同),然后建立文件与对象的关联,同时指定工作模式,接着调用成员函数open()/close()实现对文件的打开和关闭
    一个简单的实例就是:
            #include<iostream>
            using namespace std;
    ofstream ocout;
    ocout.open("sunfei.txt");
    ocout<<"hello word";
    ocout.close();
            2.从文件中读取数据
            与将数据输入到文件中的操作方法类似,从文件中读取数据也是首先需要包含fstream头文件,然后建立ifstream对象,接着将对象与所要操作的对象相关联,这个对象也可以看做是cin对象,因此他们的使用方法相同,最后就是要关闭所要操作的文件。
    一个简单的实例为:
    char temp[25]={0};
    ifstream icin;
    icin.open("sunfei.txt");
            icin.getline(temp,24,0);// icin>>temp;
    ofstream fout;
    fout.open("sunfei1.txt");
            fout<<temp<<endl;
    cout<<temp<<endl;
    icin.close();
    fout.close();
            3.自定义文件打开方式
         C++中经常需要判断所要打开的文件是否存在,打开文件是否成功,打开文件读取是否完成等操作,这些操作在C++中都有相应的函数来进行判断,例如常用的good(),eof(),bad()以及fail()等,我们在打开一个未知文件的时候可以借助这些函数来完成文件操作的判断,下面是一个实例来演示这些函数的使用。
            ofstream fout("sunfei5.txt");
    fout<<"添加文件 ";
    fout.close();
    ifstream fin("sunfei5.txt");
    if(fin.good())
    {
    cout<<"打开文件成功,下面是输出的内容";
    char ch;
    while(!fin.eof())
    {
    ch=fin.get();
    cout<<ch;
    }
    fin.close();
    fin.open("b.txt");
    if(fin.fail())
    {
    cout<<"文件打开失败 ";
    }
    fin.close();


    }
       4.ofstream,ifstream,fstream的区别
              ofstream类的对象在默认情况下打开一个文件的时候会自动清空该文件的数据进行输出操作,它在默认情况下开启ios::trunc和ios::out标志位,因此既可以输出也可以覆盖原始数据,如果想要ofstream类对象在打开文件的时候不清空数据,可以将默认模式设置为ios::in,如 fout.open("people.txt",ios:in|iost::out);
              ifstream则开启ios::in标志位,因此可以执行读入操作。
              fstream类对象在默认情况下不会清空所打开文件的数据,它不提供默认模式,这样,在创建fstream对象的时候必须为它提供模式,假如不指定,那么它将根据后面的操作来确定它的模式。
  • 相关阅读:
    nginx优化之配置文件优化一常用参数
    Centos7+LVS-DR+Apache负载均衡web实验
    LVS负载均衡原理
    Centos7+LVS-NAT+apache实验
    CentOS7.6 使用ceph-deploy部署mimic 13.2.8集群(一)
    linux关闭ACPI电源管理模块
    Jenkins + pipeline + Git + PHP (九)
    Jenkins-Master-slave架构(八)
    Jenkins参数化构建(七)
    Jenkins连接Git仓库时候报错Permission denied, please try again.
  • 原文地址:https://www.cnblogs.com/sunfie/p/4394590.html
Copyright © 2011-2022 走看看