咬定青山不放松,立根原在破岩中。千磨万击还坚劲,任尔东西南北风。

《竹石》 郑燮

野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892

报名链接:报名联系方式

C++中文件重定向操作

浏览次数:2793

c++ 少儿编程 信息学奥赛

C++ 中的文件重定向操作可以通过将标准输入输出流指向文件来实现。
使用 C 标准库提供的函数进行文件重定向操作。以下是一个示例代码:

  1. #include <cstdio>
  2. int main() {
  3. FILE *input_file = freopen("input.txt", "r", stdin);
  4. FILE *output_file = freopen("output.txt", "w", stdout);
  5. // 从文件中读取输入,将输出写入文件
  6. int a, b;
  7. scanf("%d %d", &a, &b);
  8. printf("The sum of %d and %d is %d\n", a, b, a + b);
  9. // 恢复标准输入输出
  10. freopen("CON", "r", stdin);
  11. freopen("CON", "w", stdout);
  12. return 0;
  13. }

在这个示例中,使用 freopen 函数将标准输入和标准输出分别指向了 input.txt 和 output.txt 文件。与上面的示例不同,这里使用了 C 标准库提供的输入输出函数 scanf 和 printf,而不是 C++ 的输入输出流。

当程序结束时,使用 freopen 函数将标准输入和标准输出恢复为默认值。注意,在 Windows 平台上,需要将 freopen 函数的参数改为 “CON”,而不是 “stdin” 或 “stdout”。

以下是一个示例代码,使用 C++ 的 std::cin 和 std::cout :

  1. #include <iostream>
  2. #include <cstdio>
  3. int main() {
  4. // 打开文件,并将 cin 和 cout 重定向到文件
  5. FILE *input_file = freopen("input.txt", "r", stdin);
  6. FILE *output_file = freopen("output.txt", "w", stdout);
  7. std::ios::sync_with_stdio(false); // 禁用同步机制,提高读写速度
  8. // 从文件中读取输入,将输出写入文件
  9. int a, b;
  10. std::cin >> a >> b;
  11. std::cout << "The sum of " << a << " and " << b << " is " << a + b << std::endl;
  12. // 恢复 cin 和 cout 的默认状态,关闭文件
  13. freopen("CON", "r", stdin);
  14. freopen("CON", "w", stdout);
  15. return 0;
  16. }

在这个示例中,与前面的示例类似,使用 freopen 函数将标准输入和标准输出分别指向了 input.txt 和 output.txt 文件。但是,这里还使用了 std::ios::sync_with_stdio(false) 来禁用 cin 和 cout 的同步机制,从而提高读写速度。

在程序结束时,使用 freopen 函数将标准输入和标准输出恢复为默认值。

目录

您必须遵守 署名-非商业性使用-相同方式共享 使用这篇文章

本文链接:http://www.083158.com/article_details/296

转载注明出处:少儿编程-信息学奥赛-宜宾少儿编程-宜宾市野牛网络科技有限公司

野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892

报名链接:报名联系方式

留言条数·0