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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#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;
}


 上一页

C

 评论