c++ 在D:盘的某文件夹中新建文本文件source.txt,在其中输入10个整数。 编程实现:从文件source.txt中读取数据,将其中的完数写入文件destination.txt中。完数是指:一个数所有的真因子之和,恰好等于它本身。例如:28=1+2+4+7+14,因此,28是一个完数。 要求:(1)本题的文件采用绝对路径方式进行访问,两个文件保存于同一文件夹中。 (2)请将自己的学号姓名输出到文件destination.txt的第一行。
时间: 2024-03-14 22:43:09 浏览: 147
好的,以下是C++代码实现:
```c++
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
// 判断是否是完数
bool isPerfectNumber(int num) {
int sum = 0;
for(int i = 1; i <= num / 2; i++) {
if(num % i == 0) {
sum += i;
}
}
return sum == num;
}
int main() {
// 打开文件
ifstream fin("D:\\test\\source.txt");
if(!fin) {
cout << "文件打开失败!" << endl;
return -1;
}
// 读取数据
vector<int> data;
int num;
while(fin >> num) {
data.push_back(num);
}
// 关闭文件
fin.close();
// 写入文件
ofstream fout("D:\\test\\destination.txt");
if(!fout) {
cout << "文件打开失败!" << endl;
return -1;
}
// 写入学号姓名
fout << "学号姓名:xxxxxxxx" << endl;
// 写入完数
for(auto num : data) {
if(isPerfectNumber(num)) {
fout << num << endl;
}
}
// 关闭文件
fout.close();
return 0;
}
```
其中,需要将`D:\\test\\source.txt`和`D:\\test\\destination.txt`替换成你自己的文件路径。同时,需要将`学号姓名:xxxxxxxx`替换成你自己的学号姓名。在运行代码前,需要先在`D:`盘的某文件夹中创建一个名为`test`的文件夹,并在该文件夹中创建`source.txt`文件,输入10个整数。代码会将结果写入该文件夹下的`destination.txt`文件中。
阅读全文