尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

【C++】重定向是什么

【C++】重定向是什么
📅 发布时间:2026/8/3 3:37:27

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代码,把本该屏幕、键盘的数据,转移到文件中读写。

相关新闻

  • RapidRAW AI图像编辑预设系统完全指南:快速创建与管理你的专属风格
  • 国际象棋思维训练:从核心规则到AI辅助的现代学习路径
  • 2026精选:不锈钢排水沟制造厂实力剖析与差异化适配指南——助力佛山市亿齐旺金属有限公司选型 - 装修教育财税推荐2026

最新新闻

  • Python游戏化实战:从零构建趣味项目,掌握核心编程技能
  • 2026年成都新能源货车以租代购怎么选?专业视角解析口碑与关键考量 - 优质品牌商家
  • 2026年重庆企业沙发清洗公司选哪家?本地服务商综合评估与推荐 - 优质品牌商家
  • Simulink在风电混合储能并网仿真中的应用与实践
  • ThinkPHP与Laravel双框架集成开发宠物生活馆网站实践
  • 安卓手机运行完整Linux系统:Termux与PRoot实战指南

日新闻

  • 112、LLC谐振变换器的输入电压瞬态仿真分析
  • 2026深圳疑难签证办理指南:拒签再签/商务签/高端定制机构怎么选 - 互联网科技品牌测评
  • C-LODOP在Edge等现代浏览器中的部署、适配与实战应用

周新闻

  • 怀化母婴除甲醛公司测甲醛中心怎么选:康之居母婴除甲醛标准、流程、避坑指南 - 信誉隆金银铂奢回收
  • 三步打造你的终极音乐中心:foobox-cn网络电台功能完整指南
  • Lance湖仓格式:为多模态AI工作流设计的终极数据存储方案

月新闻

  • ClickHouse版本管理深度实战:4步构建零风险升级与回滚体系
  • Java 23 种设计模式:从踩坑到精通 | 番外:责任链模式 —— 物流审批流程实战
  • 华硕笔记本性能解放指南:G-Helper轻量级控制工具全面解析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号