我输入的是52 65 782 8128 450 28 128 6 125 496
时间: 2024-03-08 18:49:36 浏览: 9
我发现你输入的数据中有一个是 6,而这个数的因子和等于 6,因此它会被写入到输出文件中。但是,你的代码中并没有输出换行符,因此所有的数据都会写在同一行中,难以分辨每个数在哪里结束。你可以在每个数后面加上一个空格和一个换行符,以便更好地分辨每个数。
修改后的代码如下:
```c++
#include <iostream>
#include <fstream>
#include <vector> // 引入 vector 头文件
using namespace std;
int main() {
ifstream inFile("D:\\Program Files (x86)\\source.txt");
if (!inFile) {
cout << "Failed to open input file!" << endl;
exit(EXIT_FAILURE); // 退出程序
}
vector<int> a; // 使用 vector 来存储整数
int num;
while (inFile >> num) {
a.push_back(num); // 将读取的整数添加到 vector 中
}
inFile.close();
ofstream outFile("D:\\Program Files (x86)\\destination.txt");
if (!outFile) {
cout << "Failed to open output file!" << endl;
exit(EXIT_FAILURE); // 退出程序
}
outFile << "2022111489 王茜" << endl;
int sum;
for (int i = 0; i < a.size(); i++) {
if (a[i] < 2) { // 判断当前整数是否小于 2
continue;
}
sum = 0;
for (int j = 2; j < a[i]; j++) {
if (a[i] % j == 0) {
sum += j;
}
}
if (sum == a[i]) {
outFile << a[i] << " \n"; // 在每个数后面加上一个空格和一个换行符
}
}
outFile.close();
return 0;
}
```
这样修改后,如果你的输入数据中有符合条件的数,输出文件中每个数都会单独占一行,以便更好地分辨每个数。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)