写一段代码读取文件输入的整数数组有四个整数,分别为2,7,11,15,目标值为9。数组中的2和7的累加和为9,因此返回这两个整数在数组中的下标地址,即0,1。测试数据文件名为in.txt。
时间: 2024-09-28 07:16:46 浏览: 30
设有n个正整数,将他们连接成一排,组成一个最大的多位整数
要编写这段代码,你需要使用C++标准库中的`fstream`来处理文件输入,以及一个简单的循环来查找满足条件的整数对。以下是一个示例程序:
```cpp
#include <iostream>
#include <fstream>
#include <vector>
std::pair<int, int> findSumPair(const std::vector<int>& arr, int target) {
for (int i = 0; i < arr.size() - 1; ++i) {
if (arr[i] + arr[i + 1] == target) {
return {i, i + 1};
}
}
// 如果没有找到匹配,返回空对或抛异常(根据需求)
return {-1, -1};
}
int main() {
std::ifstream inputFile("in.txt");
if (!inputFile.is_open()) {
std::cerr << "Error opening file.\n";
return 1;
}
std::vector<int> numbers;
int num;
while (inputFile >> num) {
numbers.push_back(num);
}
inputFile.close();
if (numbers.empty()) {
std::cerr << "No numbers found in the file.\n";
return 1;
}
int target = 9;
auto result = findSumPair(numbers, target);
if (result.first != -1) {
std::cout << "The pair with sum " << target << " is at indices (" << result.first << ", " << result.second << ").\n";
} else {
std::cout << "No pair found with sum " << target << ".\n";
}
return 0;
}
```
这个程序首先打开并读取"in.txt"文件中的整数,然后调用`findSumPair`函数找出满足条件的整数对。如果找到了,就输出它们的下标;否则,输出找不到这样的对。
阅读全文