编写程序,使用文本文件将斐波那契数列前40个数保存在fib.txt文件中。然后打开这个文件,依次用数列的前一项除以后一项,将除的结果保存在fibst.txt中。打开文件观察结果。再用二进制文件的方式重新实现一遍,打开文件观察结果。
时间: 2024-02-09 10:10:23 浏览: 94
以下是C++代码实现将斐波那契数列前40个数保存在fib.txt文件中,然后打开这个文件,依次用数列的前一项除以后一项,将除的结果保存在fibst.txt中,并使用文本文件和二进制文件两种方式实现:
```c++
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
// 使用文本文件保存斐波那契数列
ofstream fout("fib.txt");
int fib[40];
fib[0] = 0;
fib[1] = 1;
fout << fib[0] << endl;
fout << fib[1] << endl;
for (int i = 2; i < 40; i++)
{
fib[i] = fib[i-1] + fib[i-2];
fout << fib[i] << endl;
}
fout.close();
// 从文本文件读取斐波那契数列,计算除数,并保存到另一个文件中
ifstream fin("fib.txt");
double a, b;
fin >> a;
fout.open("fibst.txt");
while (fin >> b)
{
fout << a/b << endl;
a = b;
}
fin.close();
fout.close();
// 使用二进制文件保存斐波那契数列
fout.open("fib.bin", ios::binary);
fout.write((char*)fib, sizeof(fib));
fout.close();
// 从二进制文件读取斐波那契数列,计算除数,并保存到另一个文件中
fin.open("fib.bin", ios::binary);
int fib2[40];
fin.read((char*)fib2, sizeof(fib2));
fin.close();
a = fib2[0];
fout.open("fibst.bin", ios::binary);
for (int i = 1; i < 40; i++)
{
b = fib2[i];
fout.write((char*)&(a/b), sizeof(double));
a = b;
}
fout.close();
return 0;
}
```
运行程序后,会生成fib.txt、fibst.txt、fib.bin和fibst.bin四个文件,分别保存斐波那契数列、除数和它们的二进制文件。打开fibst.txt和fibst.bin文件,可以观察到它们保存的除数结果。
阅读全文