当前位置: 首页 > news >正文

【C++】重定向是什么

1、什么是标准输入输出

C 默认:

  • printf标准输出 stdout→ 默认打印到屏幕
  • scanf标准输入 stdin→ 默认从键盘读取

重定向 = 改变数据流的目的地/来源
不让程序读写屏幕、键盘,改成读写文件

分为两种:
操作系统Shell重定向(外部重定向,最常用)
C代码内部重定向(freopen,程序内部实现)


2. 第一种:命令行重定向(外部,不用改代码)

编译程序得到a.exe

# 把程序输出,从屏幕 → 写入output.txt./a.exe>output.txt# 从文件input.txt代替键盘输入./a.exe<input.txt# 输入文件,同时输出到文件./a.exe<input.txt>output.txt

>输出重定向
<输入重定向

✅优点:源代码完全不用修改

3. 第二种:代码内部重定向 freopen()

头文件:#include <stdio.h>

#include<stdio.h>intmain(){// 输出重定向:printf不再打印屏幕,写入out.txtfreopen("out.txt","w",stdout);printf("这段文字不会出现在屏幕,保存到文件!\n");// 恢复回屏幕输出(可选)// freopen("CON", "w", stdout);return0;}

输入重定向示例:

// scanf 不再读键盘,读取 in.txtfreopen("in.txt","r",stdin);

⚠️ Windows 恢复控制台:freopen("CON","r",stdin)
Linux 恢复控制台:freopen("/dev/tty","r",stdin)


4、核心概念区分(很多人混淆)

  1. 重定向只是改变数据流方向
    程序里printf/scanf写法完全不用变,代码无需改动读写逻辑。
    程序自身“感觉”还是在和键盘、屏幕交互,底层被转发到文件。

  2. 和直接fopen/fprintf的区别

  • fopen:你主动创建文件指针FILE* fp,使用fprintf(fp, ...)
  • 重定向:不改原有printf代码,劫持全局stdin/stdout。

5、典型使用场景

  1. OJ算法刷题:本地测试,不用手动输入一堆数据;
  2. 程序日志快速导出到文件;
  3. 批量测试,自动读取测试用例。

6、常见坑

  1. freopen失败不会报错,记得判断返回值;
  2. 程序结束前如果需要恢复控制台输出,要手动恢复;
  3. 多次freopen容易造成流泄露。

极简一句话总结

重定向:不改printf/scanf代码,把本该屏幕、键盘的数据,转移到文件中读写。

http://www.jsqmd.com/news/1317507/

相关文章:

  • 2026精选:性价比高的发电机组本地回收方案——河南电力行业绿色转型新选择 - 装修教育财税推荐2026
  • 2026 年新消息:睢宁专业的疏通下水道施工队综合实力解析,上次花200请师傅通的,今天才发现根本没必要花那钱!-嘉宝管道疏通 - 企业信息推荐【官方】
  • 国际象棋思维训练:从核心规则到AI辅助的现代学习路径
  • RapidRAW AI图像编辑预设系统完全指南:快速创建与管理你的专属风格
  • ESP32-C6驱动AMOLED触摸屏:低功耗物联网图形界面开发实战
  • 二手Vision Pro空间视频实测与三星S26 Ultra屏幕技术解析
  • 物联网数据记录器实战:从传感器到云端的可靠数据采集与传输
  • AI智能体在模拟金融市场中的博弈行为与系统构建解析
  • MongoDB 8.0——事务
  • ATAT 全功能说明
  • Linux中查看PDF
  • 2026赤峰劳动争议律师推荐:从工伤认定到仲裁执行的5位实务派 - 本地品牌推荐
  • Flask+Vue全栈健康监控系统开发实践
  • 2026精选:不锈钢排水沟制造厂实力剖析与差异化适配指南——助力佛山市亿齐旺金属有限公司选型 - 装修教育财税推荐2026
  • [Android ] 游戏翻译大师Game Screen Translate v2.1.1 -游戏翻译成中文
  • iOS 使用 Flutter 开发海外工具类应用:账号被封与 APP 下架问题深度解析与解决方案
  • Flutter项目创建卡顿?深度解析网络、Gradle与Android SDK配置
  • 抖音无水印视频下载终极指南:从零开始掌握高效批量下载技巧
  • 初中数学提分实战:几何辅助线模板与二次函数技巧全解析
  • 如何快速解决游戏模组显示问题:BG3ModManager完整排查指南
  • 数字时代的孤独悖论:连接与情感空洞
  • 2026赤峰婚姻家庭律师推荐:从财产追回抚养权到共同债务的5位实务派 - 本地品牌推荐
  • 2026 年新消息:肇庆正规的花岗岩大门牌楼定制厂家选哪家,村口立了30年的“石头门”,居然是造价百万的稀罕物,你家村口可能也有?-芊毅石雕 - 行业鉴选官
  • 审小匠 vs 手工:往来函证与银行询证函自动生成评测
  • 2026 年 7 月新发布:门头沟比较好的电商仓储输送流水线供货商推荐几家,双11单量破亿的仓库,靠这玩意儿把出错率压到了0.1%? - 实业推荐官【官方】
  • Cesium中任意多边形动态水面实现:从原理到实战
  • [Android ] 歌词适配 v4.0.1 -畅听全网歌曲+支持下载
  • 数据归一化实战:MinMaxScaler原理、应用与避坑指南
  • 5分钟解锁英雄联盟全皮肤:R3nzSkin国服特供版完全指南
  • 虚拟存储器深度实践:从课后习题到国产化部署与故障排查