C++中,如何将cin、cout重新定向到文件中
时间: 2024-01-28 12:05:06 浏览: 182
可以使用 `freopen` 函数将 `std::cin` 和 `std::cout` 重定向到文件中。具体步骤如下:
1. 打开输入文件和输出文件,并获取文件指针。
2. 使用 `freopen` 函数将文件指针与标准输入输出流关联起来。
3. 将要输入或输出的内容使用 `std::cin` 或 `std::cout` 进行操作。
4. 关闭文件指针。
下面是一个简单的例子,演示了如何将 `std::cin` 和 `std::cout` 重定向到文件中:
```c++
#include <iostream>
#include <cstdio>
int main() {
// 打开输入文件并获取文件指针
FILE* in = fopen("input.txt", "r");
// 打开输出文件并获取文件指针
FILE* out = fopen("output.txt", "w");
// 将 std::cin 重定向到输入文件中
std::cin.rdbuf(in-> _fileno);
// 将 std::cout 重定向到输出文件中
std::cout.rdbuf(out-> _fileno);
// 从输入文件中读入一些内容
int a, b;
std::cin >> a >> b;
// 输出一些内容到输出文件中
std::cout << a << " + " << b << " = " << a + b << std::endl;
// 关闭文件指针
fclose(in);
fclose(out);
return 0;
}
```
在上面的例子中,我们首先使用 `fopen` 函数打开了一个输入文件和一个输出文件,并获取了文件指针 `in` 和 `out`。然后,我们使用 `std::cin.rdbuf()` 函数将输入文件指针与 `std::cin` 关联起来,使用 `std::cout.rdbuf()` 函数将输出文件指针与 `std::cout` 关联起来,从而将输入输出重定向到文件中。接着,我们使用 `std::cin` 从输入文件中读入了两个整数,然后使用 `std::cout` 将它们相加的结果输出到输出文件中。最后,我们关闭了文件指针,以确保文件被正确地读取和写入。
阅读全文