坑人的C++-2


C++文件和流


在C++中进行文件处理,可使用标准库fstream

它定义了三个新的数据类型,用于从文件写入流和从文件读取流

数据类型 描述
ofstream 该数据类型表示输出文件流,用于创建文件并向文件中写入信息
ifstream 该数据类型表示输入文件流,用于从文件中读取信息
fstream 该数据类型通常表示文件流,同时具有ofstream和ifstream两种功能,他可以创建文件,向文件中写入信息,从文件中读取信息

打开文件

ofstreamifstream对象都可以open()函数打开文件进行写操作。open()函数是ofstream、ifstream、fstream对象的一个成员。
open()函数标准语法

void open(const char *filename,ios::openmode mode)
  • 第一个参数为要打开的文件名称和位置
  • 第二个参数为文件打开的模式
模式标志 描述
ios::app 追加模式。所有写入都追加到文件末尾
ios::ate 文件打开后定位到文件末尾
ios::in 打开文件用于读取
ios::out 打开文件用于写入
ios::trunc 如果文件已经存在,其内容在打开文件之前被截断,即把文件长度设为0

打开模式可以两个或者多个结合使用

ofstream outfile;
outfile.open("file.data",ios::out|ios::trunc)
//outfile.open("file.data",ios::out|ios::in)

关闭文件

C++程序终止时,它会自动关闭刷新所有流,释放所有分配的内存,并关闭所有打开的文件。
听说优秀的程序员会在程序终止前关闭打开的文件
使用close()函数

写入文件 && 读取文件

  • 使用流插入运算符(<<)向文件写入信息,就像使用该运算符输出信息到屏幕上一样,但用的不是cout对象,而是ofstream或者fstream对象

-使用流提取运算符(>>)从文件中读取信息。这里使用的是ifstream或者fstream对象

demo

#include<iostream>
#include<fstream>
using namespace std;

int main()
{
    char data[100];

    //以写模式打开文件 
    ofstream outfile;
    outfile.open("afile.data");//这里使用了相对路径 

    cout<<"writing to the file"<<endl;
    cout<<"enter your name:";
    cin.getline(data,100);//cin对象的附加函数,getline()从外部读取一行 

    //向文件写入用户输入的数据 
    outfile<<data<<endl;

    cout<<"enter your age:";
    cin>>data;
    cin.ignore();//忽略掉之前读语句留下的多余字符 

    //再次向文件写入用户输入的数据 
    outfile<<data<<endl;

    outfile.close();

    //以读模式打开文件 
    ifstream infile;
    infile.open("afile.data"); 

    cout<<"reading from the file"<<endl;
    infile>>data;

    //在屏幕上读取数据 
    cout<<data<<endl;

    //再次从文件中读取数据并显示它 
    infile>>data;
    cout<<data<<endl;

    infile.close();

    return 0;  
}



文章作者: ShanSan
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 ShanSan !
 上一篇
竖式问题 竖式问题
字符串处理函数strchr() && 竖式问题 竖式问题 题目描述 找出所有形如abc*de(三位数乘两位数)的算式,使得在完整的竖式中,所有数字都属于一个特定的数字集合。 输入: 输入一个数字集合(相邻
2018-10-24
下一篇 
坑人的C++ 坑人的C++
C++自定义命名空间使用关键字namespace namespace namespace_name { //代码声明 } #include<iostream> using namespace std; using st
2018-10-22
  目录