C++计算机杂谈C++

c++的文件读写

2018-04-03  本文已影响78人  爱秋刀鱼的猫

平时用的比较多的是iostream标准库,这个标准库提供了cin和cout方法用于从标准输入读取和向标准输出写入。但是却很少用到向文件读取和写入文件,这里要提到另一个标准库fstream
这个库定义了下面几种数据类型:

数据类型 要使用这些数据类型,C++文件中要包含头文件<fstream>。那这三种数据类型怎么用呢?

我们是要把数据输出到文件或者是从文件当中读取数据。首先第一步,我们都知道需要打开这个文件:

打开文件

使用open()函数打开文件,

void open(const char *filename, ios::openmode mode);

第二个参数是文件打开的模式:


模式

比如:

ofstream outfile;
outfile.open("file.dat", ios::out | ios::trunc );

表示用写入的模式打开一个文件,并截断文件?(我其实也不大懂这个截断文件是什么意思)
用完文件以后,还是需要养成随手关门的好习惯的。

关闭文件

当 C++ 程序终止时,它会自动关闭刷新所有流,释放所有分配的内存,并关闭所有打开的文件。但程序员应该养成一个好习惯,在程序终止前关闭所有打开的文件。close() 函数是 fstream、ifstream 和 ofstream 对象的一个成员。
如何向文件写入数据呢?
c++中使用流插入运算符( << )向文件写入信息,就像使用该运算符输出信息到屏幕上一样。唯一不同的是,在这里您使用的是 ofstreamfstream对象,而不是cout对象。

读取数据

在 C++ 编程中,我们使用流提取运算符( >> )从文件读取信息,就像使用该运算符从键盘输入信息一样。唯一不同的是,在这里您使用的是ifstreamfstream对象,而不是 cin 对象。

这里给大家举一个简单的例子🌰:

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

int main()
{
    char data[100];
    // 以写的模式打开文件
    ofstream ofile;
    ofile.open("test.txt");
    cout<<"write to the file"<<endl;
    cout<<"Enter your name";
    cin.getline(data,100);
    //向文件写入用户输入的数据
    ofile<<data<<endl;

    cout<<"Enter your age:";
    cin>>data;
    ofile<<data<<endl;

    //关闭打开的文件
    ofile.close();
    //以读的形式打开文件
    ifstream ifile;
    ifile.open("test.txt");
    cout<<"Reading from the file"<<endl;
    ifile>>data;

    //在屏幕上输出数据
    cout<<data<<endl;
    // 再次从文件读取数据,并显示它
    ifile >> data; 
    cout << data << endl; 
    // 关闭打开的文件
   ifile.close();
 
   return 0;
   }
上一篇 下一篇

猜你喜欢

热点阅读