对ASCII文件的操作
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; }