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;
}