freopen()函数

  freopen函数通过实现标准I/O重定向功能来访问文件,而fopen函数则通过文件I/O来访问文件。

  freopen函数在算法竞赛中常被使用。在算法竞赛中,参赛者的数据一般需要多次输入,而为避免重复输入,使用重定向。

 1 freopen 函数说明
 2
 3 函数名: freopen
 4 功  能: 实现数据重定向到文件中
 5 用  法: FILE *freopen(const char *filename, const char *mode, FILE *stream);
 6 返回值: 成功,则返回文件指针;失败,返回NULL(可以不使用它的返回值) 7
 8 #include <stdio.h>
 9
10 int main(void)
11 {
12    /* redirect standard output to a file */
13    if (freopen("OUTPUT.FIL", "w", stdout)
14        == NULL) {
15       fprintf(stderr, "error redirecting\
16               stdout\n");
17   }
18    /* this output will go to a file */
19    printf("This will go into a file.");
20
21    /* close the standard output stream */
22    fclose(stdout);
23
24    return 0;
25 } 

  注意:算法竞赛中,filename不要使用绝对路径或者相对路径。

时间: 2024-12-16 12:05:51

freopen()函数的相关文章

【技巧】freopen()函数在ACM中的应用

在做题目的过程当中,我们需要在本机上调试,当然我们可以把测试用例一遍一遍粘贴复制,也经常会遇到测试用例很多的时候,输入和输出混了,还要去找输出和题目当中的对照.另外,有的时候题目给的测试用例太少,需要自己或者队友给想几个临界条件,自己动手多添加几个测试用例,每测一遍都要动手输入的话麻烦又浪费时间.这时候freopen()上场了. 函数名:    freopen() 函数声明:  FILE  *freopen(const char *path,const char *mode,FILE *stre

freopen()函数测试数据

当我们求解acm题目时,通常在设计好算法和程序后,要在调试环境(例如VC等)中运行程序,输入测试数据,当能得到正确运行结果后,才将程序提交到oj中.但由于调试往往不能一次成功,每次运行时,都要重新输入一遍测试数据,对于有大量输入数据的题目,输入数据需要花费大量时间. 使用freopen函数可以解决测试数据输入问题,避免重复输入,不失为一种简单而有效的解决方法. 函数名:freopen 声明:FILE *freopen( const char *path, const char *mode, FI

[转]C语言文件输入/输出ACM改进版(freopen函数)

C语言文件输入/输出ACM改进版(freopen函数) 2009年5月27日 10:379,457 浏览数发表评论阅读评论 文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作. 昨天发了一篇<C语言 使用文件输入/输出数据>,使用的是最普通的文件输入/输出方法,Felix大牛随后给了一种更简单的改进方法,在ACM中应用很广,而且超赞,现在来介绍一下. 这次用到的文件打开函数不再是fopen,而是stdio.h中包含的另一个函数fr

freopen函数 输入输出重定向

平时我们调试的时候,总是要一个个样例输入,再看输出. 但是如果我们输入量比较大的时候,虽然可以用复制功能,但是如果输出内容太多,屏幕显示不了,对于我们调试就很不方便. 这里介绍一下freopen函数的使用.下面先看一个样例: 输入10个数,再输出10个数. 一般我们会这样写: #include"stdio.h" int main() { int n=10; int a[20]; for(int i=1;i<=n;i++) scanf("%d",&a[i

freopen函数的使用以及freopen与fopen的区别

freopen函数的使用:参见这篇博客https://www.cnblogs.com/moonlit/archive/2011/06/12/2078712.html 当我们求解acm题目时,通常在设计好算法和程序后,要在调试环境(例如VC等)中运行程序,输入测试数据,当能得到正确运行结果后,才将程序提交到oj中.但由于调试往往不能一次成功,每次运行时,都要重新输入一遍测试数据,对于有大量输入数据的题目,输入数据需要花费大量时间. 使用freopen函数可以解决测试数据输入问题,避免重复输入,不失

C++ 中 freopen()函数的用法

#include <stdio.h> #include <iostream> using namespace std; int main() { int a,b; freopen("in.txt","r",stdin); //输入重定向,输入数据将从in.txt文件中读取 freopen("out.txt","w",stdout); //输出重定向,输出数据将保存在out.txt文件中 while(ci

freopen ()函数

1.格式 FILE * freopen ( const char * filename, const char * mode, FILE * stream ); 2.参数说明 filename: 要打开的文件名 mode: 文件打开的模式,和fopen中的模式(r/w)相同 stream: 文件指针,通常使用标准流文件(stdin/stdout/stderr) 返回值:成功,则返回一个path所指定文件的指针:失败,返回NULL.(一般可以不使用它的返回值) 功能:实现重定向,把预定义的标准流文

C语言标准io函数总结

转自:http://blog.csdn.net/sun_top/article/details/4235992本来是在vscode上用markdown排好版的,结果复制到这上面就变了形,无奈. 函数列表:clearerr() 清除错误 fclose() 关闭一个文件 feof() 如果到达文件尾(end-of-file)返回"True"(真) ferror() 检查一个文件错误 fflush() 书写输出缓存的内容 fgetc() 从流获取一个字符 fgetpos() 获取文件位置指针

Linux下C/C++的文件操作open、fopen与freopen

open是linux下的底层系统调用函数,fopen与freopen c/c++下的标准I/O库函数,带输入/输出缓冲.linxu下的fopen是open的封装函数,fopen最终还是要调用底层的系统调用open.所以在linux下如果需要对设备进行明确的控制,那最好使用底层系统调用(open), open对应的文件操作有:close, read, write,ioctl 等.fopen 对应的文件操作有:fclose, fread, fwrite, freopen, fseek, ftell,