3.设计一个程序,完成如下功能: (1)定义一个函数,产生指定数量的随机整数,整数返回在[0,10000]之间,并将这些整数分别保存到文本文件random_number.txt和二进制文件random_number.dat。 (2)定义一个函数,从二进制文件random_number.dat中读取所有整数。 (3)定义一个函数,从二进制文件random_number.dat中读取指定位置的某个整数或某几个整数。 (4)验证上述函数的功能。C++实现
时间: 2024-02-22 18:59:47 浏览: 70
以下是C++实现代码:
```c++
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
void generateRandomNumbersToFile(int count) {
ofstream fout_txt("random_number.txt");
ofstream fout_bin("random_number.dat", ios::binary);
for (int i = 0; i < count; i++) {
int num = rand() % 10001;
fout_txt << num << endl;
fout_bin.write((char*)&num, sizeof(num));
}
fout_txt.close();
fout_bin.close();
}
void readAllNumbersFromBinaryFile() {
ifstream fin("random_number.dat", ios::binary);
int num;
while (fin.read((char*)&num, sizeof(num))) {
cout << num << endl;
}
fin.close();
}
void readNumbersFromBinaryFileAtPosition(int pos, int count) {
ifstream fin("random_number.dat", ios::binary);
fin.seekg((pos-1)*sizeof(int));
int num;
for (int i = 0; i < count && fin.read((char*)&num, sizeof(num)); i++) {
cout << num << endl;
}
fin.close();
}
int main() {
srand(time(NULL));
generateRandomNumbersToFile(10);
cout << "All numbers:" << endl;
readAllNumbersFromBinaryFile();
cout << "Numbers at position 3-5:" << endl;
readNumbersFromBinaryFileAtPosition(3, 3);
return 0;
}
```
在这个程序中,我们使用了C++的文件输入输出流,通过打开文件、读写文件等操作,实现了对文件的读写和操作。其中:
- generateRandomNumbersToFile函数:该函数用于生成指定数量的随机整数,并将这些整数分别保存到文本文件和二进制文件中。
- readAllNumbersFromBinaryFile函数:该函数用于从二进制文件中读取所有整数,并输出到屏幕上。
- readNumbersFromBinaryFileAtPosition函数:该函数用于从二进制文件中读取指定位置的某个整数或某几个整数,并输出到屏幕上。
在主函数中,我们首先调用generateRandomNumbersToFile函数生成了10个随机整数,并将它们保存到了文本文件和二进制文件中。然后,我们分别调用了readAllNumbersFromBinaryFile函数和readNumbersFromBinaryFileAtPosition函数,并将它们的输出结果展示出来。
注意,在二进制文件中读取整数时,我们使用了ifstream的read函数,并将读取的结果强制转换为int类型。同时,在读取指定位置的整数时,我们使用了ifstream的seekg函数来
阅读全文