ASCII文件又称文本(text)文件或字符文件,它的每一个字节放一个ASCII代码,代表一个字符
对ASCII文件的读写操作可以用以下两种方法:
(1)用流插入运算符“<<”和流提取运算符“>>”输入输出标准类型的数据。
“<<”和“>>”都已在iostream中被重载为能用于ostream和istream类对象的标准类型的输入输出。由于ifstream和ofstream分别是ostream和istream类的派生类,因此它们从ostream和istream类继承了公用的重载函数,所以在对磁盘文件流对象和流对象运算符“<<”和流提取运算符“>>”实现对磁盘文件读写,如同用cin,cout和<<,>>对标准设备进行读写一样。
(2)用文件流的put,get,getline等成员函数进行字符的输入输出
//有一个整型数组,含10个元素,从键盘输入10个整数给数组,将此数组送到磁盘文件中存放
#include<fstream>
#include<iostream>
using namespace std;
int main()
{
int a[10];
ofstream outfile("f1.dat",ios::out);
if(!outfile)
{ cerr<<"open error!"<<endl;
exit(1);
}
cout<<"enter 10 integer numbers:"<<endl;
for(int i=0;i<10;i++)
{ cin>>a[i];
outfile<<a[i]<<" ";}
outfile.close();
return 0;
}
//从上面建立的数据文件f1.dat中读入10个整数放在数组中,找出并输出10个数中的最大者和它在数组中的序号
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
int a[10],max,i,order;
ifstream infile("f1.dat",ios::in);
if(!infile)
{ cerr<<"open error!"<<endl;
exit(1);
}
for(i=0;i<10;i++)
{ infile>>a[i];
cout<<a[i]<<" ";
}
cout<<endl;
max=a[0];
order=0;
for(i=1;i<10;i++)
if(a[i]>max)
{ max=a[i];
order=i;
}
cout<<"max="<<max<<endl<<"order="<<order<<endl;
infile.close();
system("pause");
return 0;
}