每组测试数据有两个正整数 n,m 。对应每组输出 n÷m 和 n%m ,数据读到文件末尾,用c++
时间: 2024-09-24 12:17:26 浏览: 50
yuesefuhuan.rar_M?n_数据结构 约瑟夫环
5星 · 资源好评率100%
在C++中,如果你需要从文件中读取一组测试数据,每个测试数据由两个正整数n和m组成,然后计算它们的商(n ÷ m)和余数(n % m),你可以按照以下步骤操作:
首先,创建一个结构体或者类来存储输入的数据,例如:
```cpp
struct TestData {
int n;
int m;
};
```
然后,编写一个函数来从文件中读取这些数据并进行处理:
```cpp
#include <fstream>
#include <vector>
// 假设你的数据保存在一个名为"test_data.txt"的文本文件中,每行包含两个数字,用空格分隔
std::vector<TestData> readTestCases(const std::string& filename) {
std::ifstream inputFile(filename);
std::vector<TestData> testCases;
if (inputFile.is_open()) {
std::string line;
while (std::getline(inputFile, line)) {
std::istringstream iss(line);
int n, m;
if (!(iss >> n >> m)) {
std::cerr << "Invalid input format!" << std::endl; // 处理无效数据
continue;
}
testCases.push_back({n, m});
}
inputFile.close();
} else {
std::cerr << "Failed to open the file." << std::endl;
}
return testCases;
}
void processTestCases(const std::vector<TestData>& cases) {
for (const auto& caseData : cases) {
int quotient = caseData.n / caseData.m;
int remainder = caseData.n % caseData.m;
std::cout << "For n=" << caseData.n << " and m=" << caseData.m << ", quotient is " << quotient << " and remainder is " << remainder << "\n";
}
}
int main() {
std::string filename = "test_data.txt";
std::vector<TestData> cases = readTestCases(filename);
if (!cases.empty()) {
processTestCases(cases);
}
return 0;
}
```
在这个例子中,`readTestCases`函数负责读取文件直到末尾,将每个测试数据对添加到`testCases`向量中。然后,`processTestCases`函数遍历每个数据对并打印结果。
阅读全文