件Beijing.dat和Tianjin.dat分别存放两地的某一统计数据, Combined.dat文件初始为空. Bejing.dat的内容: 27 35 38 52 55 61 81 87 Tianjin.dat的内容: 31 34 41 45 49 56 63 74 92 95 该程序的输出结果是什么 #include <iostream> #include <fstream> using namespace std; bool more (ifstream&fin, int &n) { if (fin>>n) return true; return false; } bool copy(ofstream& fout,ifstream& fin,int& n) { fout<< “ “<<n; cout<< “ “<<n; return more(fin, n); } void main() { ifstream fin1(“Beijing.dat”); ifstream fin2(“Tianjin.dat”); ofstream fout(“Combined.dat”); int n1,n2; bool more1 = more (fin1,n1); bool more2 = more(fin2,n2); while (more1 && more2) if (n1<n2) more1=copy(fout,fin1,n1); else more2=copy(fout,fin2,n2); while (more1) more1=copy(fout,fin1,n1); while(more2) more2=copy(fout,fin2,n2); fout<<endl; cout<<endl; fin1.close(); fin2.close(); fout.close(); }
时间: 2024-03-21 20:37:35 浏览: 86
该程序的输出结果是将Beijing.dat和Tianjin.dat中的数据按从小到大的顺序合并到Combined.dat文件中,并在控制台输出合并后的数据。程序的具体实现过程如下:
```
#include <iostream>
#include <fstream>
using namespace std;
bool more(ifstream& fin, int& n)
{
if (fin >> n)
return true;
return false;
}
bool copy(ofstream& fout, ifstream& fin, int& n)
{
fout << " " << n;
cout << " " << n;
return more(fin, n);
}
int main()
{
ifstream fin1("Beijing.dat");
ifstream fin2("Tianjin.dat");
ofstream fout("Combined.dat");
int n1, n2;
bool more1 = more(fin1, n1);
bool more2 = more(fin2, n2);
while (more1 && more2)
{
if (n1 < n2)
more1 = copy(fout, fin1, n1);
else
more2 = copy(fout, fin2, n2);
}
while (more1)
more1 = copy(fout, fin1, n1);
while (more2)
more2 = copy(fout, fin2, n2);
fout << endl;
cout << endl;
fin1.close();
fin2.close();
fout.close();
return 0;
}
```
该程序首先打开Beijing.dat和Tianjin.dat两个文件,以读的方式打开。然后再以写的方式打开Combined.dat文件。接着定义了一个more函数,用来从文件中读取一个整数。还定义了一个copy函数,用来将一个整数写入Combined.dat文件,并在控制台输出该整数。在main函数中,先从两个文件中读取一个整数,然后比较两个整数的大小,如果第一个文件中的数小于第二个文件中的数,则将第一个数写入Combined.dat文件中,否则将第二个数写入Combined.dat文件中。然后再从相应的文件中读取下一个整数,直到其中一个文件中的数都被读取完毕。最后,将剩余的数写入Combined.dat文件中,并在控制台输出合并后的数据。最后,需要关闭三个文件。
阅读全文