文件读写

来源:互联网 发布:ds数据精灵注册机 编辑:程序博客网 时间:2024/06/08 11:03

problem

建立两个磁盘文件f1.dat和f2.dat,编程实现以下工作:
1.从键盘键入20个整数,分别存放在两个磁盘文件中(每个放10个);
2.从f1.dat读入10个数放入f2.dat文件原有数据的后面;
3.从f2.dat读入20个数,将它们按从小到大的顺序存放在f2.dat中(不保留原数据)。

code

#include <iostream>#include <fstream>using namespace std;int i;void fun1(){    int a[10];    cout << "fun1 start" <<endl;    ofstream f1("f1.dat",ios::out);    ofstream f2("f2.dat",ios::out);    cout << "Input 10 numbers to f1"<< endl;    for(i=0; i<10; i++)    {        cin >> a[i] ;        f1 << a[i] << " ";    }    cout << "Input 10 numbers to f2"<< endl;    for(i=0; i<10; i++)    {        cin >> a[i];        f2 << a[i] << " ";    }    f1.close();    f2.close();    cout << "fun1 end" << endl;}void fun2(){    int a[10];    cout << "fun2 start" <<endl;    ifstream f1("f1.dat",ios::in);    ofstream f2("f2.dat",ios::app);    for(i=0; i<10; i++)    {        f1 >> a[i];        f2 << a[i] << " ";    }    cout << "fun2 end";}void fun3(){    int a[20];    int j, t;    cout << "fun3 start" << endl;    ifstream infile("f2.dat",ios::in);    for(i=0; i<20; i++)    {        infile >> a[i];    }    for(j=0; j<19-i; j++)        if(a[j]>a[j+1])        {            t=a[j];            a[j]=a[j+1];            a[j+1]=t;        }    infile.close();    ofstream outfile("f2.dat",ios::out);    for(i=0;i<20;i++)    {        outfile << a[i];    }    outfile.close();    cout << "fun3 end" << endl;}int main(){    fun1();    fun2();    fun3();    return 0;}

C++文件读写详解(ofstream,ifstream,fstream)