所需头文件:
#include<iostream>
#include<fstream>
标准库fstream中定义了三种新的数据类型:
从文件中读取信息或者向文件写入信息之前,必须先打开文件。
void open(const char *filename,ios::openmode mode);
//open()函数是fstream、ifstream、ofstream对象的一个成员
open()函数第二个参数定义文件被打开的模式,模式有一下几种:
可以把上面的几种模式混合使用,比如,想以写入的模式打开文件,并且希望截断文件,以防止文件已经存在,可以用下面的写法:
ofstream afile;
afile.open("file.dat",ios::out | ios::trunc);
当C++程序终止时,会自动关闭刷新所有流,释放所有分配的内存,并关闭所有打开的文件。但是为了防止内存泄露,应该手动释放使用完毕的流资源。
void close();
//close()是fstream,ifstream,ofstream对象的一个成员
用流插入运算符<<向文件写入信息,就像使用该运算符输出信息到屏幕上一样 用流提取运算符>>从文件读取信息,就像使用该运算符从键盘输入信息一样
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
int main(int argc, char const *argv[])
{
/* code */
char data[100];
ofstream outfile;
outfile.open("afile.txt");
cout<<"Writing to the file"<<endl;
cout<<"Enter your name:";
cin.getline(data,100);
outfile<<data<<endl;
cout<<"Enter your age:";
cin>>data;
cin.ignore();//ignore()会忽略掉之前读语句留下的多余字符
outfile<<data<<endl;
outfile.close();
ifstream infile;
infile.open("afile.txt");
cout<<"Reading from file"<<endl;
infile>>data;
cout<<data<<endl;
infile>>data;
cout<<data<<endl;
infile>>data;
cout<<data<<endl;
infile.close();
return 0;
}
//这个程序有一个问题:输入的字符串中不能包含空白字符