C语言文件输入/输出 ACM改进版(用freopen函数方便检验)
这次用到的文件打开函数不再是fopen,而是stdio.h中包含的另一个函数freopen
FILE * freopen ( const char * filename,const char * mode, FILE * stream );
【参数说明】
filename: 要打开的文件名
mode: 文件打开的模式,和fopen中的模式(r/w)相同
stream: 文件指针,通常使用标准流文件(stdin/stdout/stderr)
【使用方法】
因为文件指针使用的是标准流文件,因此我们可以不定义文件指针。
接下来我们使用freopen()函数以只读方式r(read)打开输入文件input.txt
freopen("D:\\input.txt","r", stdin);
然后使用freopen()函数以写入方式w(write)打开输出文件output.txt
freopen("D:\\output.txt","w", stdout);
接下来的事情就是使用freopen()函数的优点了,我们不再需要修改scanf和printf,而是维持代码的原样就可以了。
因为freopen()函数重定向了标准流,使其指向前面指定的文件,省时省力啊,赞...
最后只要使用fclose关闭输入文件和输出文件即可。
fclose(stdin);
fclose(stdout);
若要恢复句柄,可以重新打开标准控制台设备文件,只是这个设备文件的名字是与操作系统相关的。
DOS/Win:
freopen("CON", "r",stdin);
Linux:
freopen("/dev/console","r", stdin);
也附加一个代码模版:
#include <stdio.h> int main()
{
freopen("D:\\input.txt","r", stdin); /*把输入样例放进D:\input.txt*/
// freopen("D:\\output.txt","w", stdout); //此句可以不要直接看控制台输出 /*中间按原样写代码,什么都不用修改,cin、scanf 都不用修改,直接自动读取 */ fclose(stdin);
// fclose(stdout);
return0;
}
C语言文件输入/输出 ACM改进版(用freopen函数方便检验)的更多相关文章
- [转]C语言文件输入/输出ACM改进版(freopen函数)
C语言文件输入/输出ACM改进版(freopen函数) 2009年5月27日 10:379,457 浏览数发表评论阅读评论 文章作者:姜南(Slyar) 文章来源:Slyar Home (www. ...
- C/C++-标准输入/输出重定向为文件输入/输出
/* Time: 2017-02-22 11:11:15 Describe: C++程序将标准输入/输出重定向为文件输入/输出. */ #include <iostream> #inclu ...
- C Primer Plus之文件输入/输出
文件 一个文件通常就是磁盘上的一段命名的存储区.但对于操作系统来说,文件就会更复杂一些.例如,一个大文件可以存储在一些分散的区段中,或者还会包含一些使操作系统可以确定其文件类型的附加数据. C将文件看 ...
- C语言文件I/O和标准I/O函数
读取/写入 相对于文件而言 输入/输出 相对于程序/内存而言 一切皆文件,键盘.显示屏也是文件,只不过是特殊的标准文件: 标准文件:标准输入.标准输出.标准错误:---->对应的文件指针:st ...
- 【C语言学习】《C Primer Plus》第13章 文件输入/输出
学习总结 1.文件函数原型1: FILE* fopen(char *filename, char *openmode); //打开文件,返回文件指针 filename:文件名,更确切地说,是包含文件 ...
- 第 13 章 文件输入/输出 (标准I/O)
/*-------------------------- count.c -- 使用标准 I/O --------------------------*/ #include <stdio.h&g ...
- C语言数据输入与输出
1 概论 C语言提供了跨平台的数据输入输出函数scanf()和printf()函数,它们可以按照指定的格式来解析常见的数据类型,例如整数,浮点数,字符和字符串等等.数据输入的来源可以是文件,控制台以及 ...
- A Byte of Python 笔记(10)输入/输出:文件和储存器
第12章 输入/输出 大多数情况下,我们需要程序与用户交互.从用户得到输入,然后打印一些结果. 可以分别使用 raw_input 和 print 语句来完成这些功能.对于输出,可以使用多种多样的 s ...
- C C++ 文件输入与输出
C语言: 一 打开关闭文件 1 fopen函数 用于打开文件 FILE *fopen(char *filename, *type); fopen("c:\\ccdos\\clib" ...
随机推荐
- Python学习笔记整理总结【Memcache & Redis(基础+主从架构)】
一.Memcached1.简介Memcached 是一个高性能的分布式内存对象缓存系统,一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度.提高可扩展性.用来存储 ...
- Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value:
问题:ERROR JDBCExceptionReporter:72 - Data truncation: Incorrect datetime value: '' for column 'create ...
- css3练习
读条的实现1 .div{position: relative;border: 1px solid #111;width: 80px;height: 60px} .div div{width: 20px ...
- Java8新特性——stream流
一.基本API初探 package java8.stream; import java.util.Arrays; import java.util.IntSummaryStatistics; impo ...
- 关于.NET HttpClient方式获取微信小程序码(二维码)
随着微信小程序的火热应用,市面上有关小程序开发的需求也多了起来.近来分析了一项生成有关生成微信小程序码的需求——要求扫码跳转到小程序指定页面(带参数):看了下小程序官方文档文档,结合网上的例子,未看到 ...
- Spark 学习笔记之 map/flatMap/filter/mapPartitions/mapPartitionsWithIndex/sample
map/flatMap/filter/mapPartitions/mapPartitionsWithIndex/sample:
- Java-Thread01之创建线程
------  ...
- java第3天:Scanner,Random,ArrayList
第一章:Scanner从入门到放弃 1 API的概述和使用步骤 API简称应用程序编程接口,是JDK给我们提供好的可以直接使用的类和方法,是程序员随手使用的字典. *** 2 Scanner的概述 2 ...
- Android OkHttp + Retrofit 取消请求的方法
本文链接 前言 在某一个界面,用户发起了一个网络请求,因为某种原因用户在网络请求完成前离开了当前界面,比较好的做法是取消这个网络请求.对于OkHttp来说,具体是调用Call的cancel方法. 如何 ...
- Web高性能动画及渲染原理(1)CSS动画和JS动画
目录 一. CSS动画 和 JS动画 1.1 CSS动画 1.2 JS动画 1.3 小结 二. 使用Velocity.js实现动画 示例代码托管在:http://www.github.com/dash ...