利用文件重定向提高调试效率(已阅加重点划)

2024-09-02 16:58

本文主要是介绍利用文件重定向提高调试效率(已阅加重点划),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


  编程得到正确结果前,往往需要多次运行程序,每次运行都需要花费不少的时间从键盘输入数据。每次输入的数据都是相同的时,会给人的心理带来不爽的感觉,并造成时间上的浪费。无论平时练习还是ACM竞赛实战,这些都是可以避免的。方法是,运用重定向

  用下面的形式调用函数freopen()会将标准输入stdin重定向到文件input.txt(这个名字可以自己定义)。

输入输出重定向例:
文件名为:r.txt
输入重定向到文件r.txt:freopen("r.txt","r",stdin);将文件r.txt中的数据读取
输出到文件:freopen("r.txt","w",stdout);将输出的结果写入到指定文件
参数说明:(文件名,方式(r为读取,w为写入),照打就ok了);
若文件名出写:"CON",为重定向回控制台

[cpp]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. freopen("input.txt","r",stdin);    //设置输入和输出文件  
  重定向后,原先从键盘(标准输入的默认设备)接受的输入,将统统从文件读取input.txt读取,这就是重定向。程序可以写作:
[cpp]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. #include<stdio.h>  
  2. int main()  
  3. {  
  4.     freopen("input.txt","r",stdin);  //只加这一句输入将被重定向到文件input.txt  
  5.     int a,b;  
  6.     scanf("%d%d",&a,&b);  
  7.     printf("%d\n",a+b);  
  8.     return 0;  
  9. }  
  于是,在运行程序前,将本该由键盘输入的数据,写到文件input.txt中。而在运行程序时,数据将不再需要人去输入。那个快,很享受。
  需要注意的是, 调试通过的程序,千万不要直接提交到OJ平台上去 。如果竞赛中这样做了,罚你的20分钟不要算到我的头上。提交的程序要把输入重定向的一行删除,这样才算是符合要求的,可以获得AC的程序 (提交oj时要将加入的重定向一行删除)

  除了删除那一行,还有一种简单的做法是,提交前将这一行前加上注释符"//",效果是一样的。

[cpp]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. #include<stdio.h>  
  2. int main()  
  3. {  
  4.     //freopen("input.txt","r",stdin);  //只加这一句输入将被重定向到文件input.txt  
  5.     int a,b;  
  6.     scanf("%d%d",&a,&b);  
  7.     printf("%d\n",a+b);  
  8.     return 0;  
  9. }  

这篇关于利用文件重定向提高调试效率(已阅加重点划)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1130535

相关文章

前端bug调试的方法技巧及常见错误

《前端bug调试的方法技巧及常见错误》:本文主要介绍编程中常见的报错和Bug,以及调试的重要性,调试的基本流程是通过缩小范围来定位问题,并给出了推测法、删除代码法、console调试和debugg... 目录调试基本流程调试方法排查bug的两大技巧如何看控制台报错前端常见错误取值调用报错资源引入错误解析错误

nginx中重定向的实现

《nginx中重定向的实现》本文主要介绍了Nginx中location匹配和rewrite重定向的规则与应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下... 目录一、location1、 location匹配2、 location匹配的分类2.1 精确匹配2

使用C/C++调用libcurl调试消息的方式

《使用C/C++调用libcurl调试消息的方式》在使用C/C++调用libcurl进行HTTP请求时,有时我们需要查看请求的/应答消息的内容(包括请求头和请求体)以方便调试,libcurl提供了多种... 目录1. libcurl 调试工具简介2. 输出请求消息使用 CURLOPT_VERBOSE使用 C

Python实现文件下载、Cookie以及重定向的方法代码

《Python实现文件下载、Cookie以及重定向的方法代码》本文主要介绍了如何使用Python的requests模块进行网络请求操作,涵盖了从文件下载、Cookie处理到重定向与历史请求等多个方面,... 目录前言一、下载网络文件(一)基本步骤(二)分段下载大文件(三)常见问题二、requests模块处理

使用DeepSeek API 结合VSCode提升开发效率

《使用DeepSeekAPI结合VSCode提升开发效率》:本文主要介绍DeepSeekAPI与VisualStudioCode(VSCode)结合使用,以提升软件开发效率,具有一定的参考价值... 目录引言准备工作安装必要的 VSCode 扩展配置 DeepSeek API1. 创建 API 请求文件2.

C#使用yield关键字实现提升迭代性能与效率

《C#使用yield关键字实现提升迭代性能与效率》yield关键字在C#中简化了数据迭代的方式,实现了按需生成数据,自动维护迭代状态,本文主要来聊聊如何使用yield关键字实现提升迭代性能与效率,感兴... 目录前言传统迭代和yield迭代方式对比yield延迟加载按需获取数据yield break显式示迭

C++中实现调试日志输出

《C++中实现调试日志输出》在C++编程中,调试日志对于定位问题和优化代码至关重要,本文将介绍几种常用的调试日志输出方法,并教你如何在日志中添加时间戳,希望对大家有所帮助... 目录1. 使用 #ifdef _DEBUG 宏2. 加入时间戳:精确到毫秒3.Windows 和 MFC 中的调试日志方法MFC

如何提高Redis服务器的最大打开文件数限制

《如何提高Redis服务器的最大打开文件数限制》文章讨论了如何提高Redis服务器的最大打开文件数限制,以支持高并发服务,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录如何提高Redis服务器的最大打开文件数限制问题诊断解决步骤1. 修改系统级别的限制2. 为Redis进程特别设置限制

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依