编写一个程序,把几个int型整数写入到一个名为“tom.dat”的文件中,然后按相反顺序读出这些数据
时间: 2024-12-29 17:34:00 浏览: 10
当你需要编写一个程序将整数写入文件并按照相反顺序读取它们时,可以使用C++中的iostream库以及fstream(文件流)来完成这个任务。这里是一个简单的示例:
```cpp
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm> // 用于反转
// 将整数写入文件
void writeIntsToFile(const std::vector<int>& numbers, const std::string& filename) {
std::ofstream file(filename);
if (file.is_open()) {
for (int num : numbers) {
file << num << " ";
}
file.close();
std::cout << "Numbers written to file successfully.\n";
} else {
std::cerr << "Failed to open the file.\n";
}
}
// 从文件中按相反顺序读取整数
std::vector<int> readAndReverseFromFile(const std::string& filename) {
std::ifstream file(filename);
if (file.is_open()) {
std::vector<int> numbers;
int number;
while (file >> number) {
numbers.push_back(number);
}
file.close();
// 反转数组
std::reverse(numbers.begin(), numbers.end());
return numbers;
} else {
std::cerr << "Failed to open the file for reading.\n";
return {};
}
}
int main() {
std::vector<int> input = {5, 3, 8, 1, 9}; // 输入的整数列表
writeIntsToFile(input, "tom.dat");
std::vector<int> reversedNumbers = readAndReverseFromFile("tom.dat");
if (!reversedNumbers.empty()) {
std::cout << "Reversed numbers from file: ";
for (int num : reversedNumbers) {
std::cout << num << " ";
}
std::cout << "\n";
}
return 0;
}
```
在这个例子中,我们首先创建了一个包含整数的向量`input`,然后调用`writeIntsToFile`函数将其写入文件。接着,我们从文件中读取所有数字并存储在一个新向量里,最后对这个向量进行反转并打印出来。
阅读全文