C语言文件*作函数freopen详解

发布时间:2022-06-15 20:35:45

今天做USACO用到了文件的*作。之前做USACO只是格式化的些写freopen("xxx.in","r",stdin)和"freopen("xxx.out","w",stdout)"

百度百科上是这么介绍的:

C语言文件*作函数freopen详解

函数名:freopen

功能:替换一个流,或者说重新分配文件指针,实现重定向。如果stream流已经打开,则先关闭该流。如果该流已经定向,则freopen将会清除该定向。此函数一般用于将一个指定的文件打开一个预定义的流:标准输入、标准输出或者标准出错。

用法:FILE*freopen(constchar*filename,constchar*type,FILE*stream);

头文件:stdio.h

例1:

复制代码代码如下:

#include

#include

intmain()

{

if(freopen("file.txt","w",stdout)==NULL)

fprintf(stderr,"errorn");

printf("Thisisinthefilen");//这句话会在file.txt中显示。

fclose(stdout);//使用fclose()函数就可以把缓冲区内最后剩余的数据输出到磁盘文件中,并释放文件指针和有关的缓冲区。

return0;

}

例2:

复制代码代码如下:

//首先在同路径下创建一个in.txt文本文档写入若干数字

#include

#include

intmain()

{

freopen("in.txt","r",stdin);//从in.txt中读入数据

freopen("out.txt","w",stdout);//将最后数据写入out.txt中

inta,b;

while(scanf("%d%d",&a,&b)!=EOF)//数据是从in.txt中输入的

printf("%dn",a+b);//写入out.txt中

fclose(stdin);

fclose(stdout);

return0;

}

freopen("CON","w",stdout)表示在控制台窗口上写入数据;

例3:

复制代码代码如下:

#include

#include

intmain()

{

//FILE*stream;

freopen("file1.txt","w",stdout);

printf("thisisinfile1.txt");//这句话在file1.txt中显示

freopen("CON","w",stdout);

printf("Andthisisinmand.n");//这句话在控制台上显示

return0;

}

例5:关于fread可以通过下面的程序,一看就知道什么意思了

复制代码代码如下:

#include

#include

intmain()

{

FILE*stream

chars[102400]="";

if((stream=freopen("file.txt","r",stdin))==null)

exit(-1);

fread(s,1,1024,stdin);//读取file.txt中1到1024位,放入s中,我是这么理解的

printf("%sn",s);

return0;

}

看了C语言文件*作函数freopen详解还看了:
  • C语言文件*作解析详解及实例代码

    在文件*作中除了打开*作以及读写*作,还有几种比较常见的*作。下面介绍C语言文件*作解析详解及实例代码,希望大家喜欢!一.移动位置指针的函数rewind函数和fseek函数,这两个函数的原型是:voidrewind(FILE*fp);将位置...

  • C语言中指针变量作为函数参数详解

    在C语言中,函数的参数不仅可以是整数、小数、字符等具体的数据,还可以是指向它们的指针。用指针变量作函数参数可以将函数外部的地址传递到函数内部,使得在函数内部可以*作函数外部的数据,并且这些数据不会随着函数的结束而被销毁。像数组、字符串、动态...

  • C语言指针函数和函数指针详解

    往往,我们一提到指针函数和函数指针的时候,就有很多人弄不懂。下面详细为大家介绍C语言中指针函数和函数指针。一、指针函数当一个函数声明其返回值为一个指针时,实际上就是返回一个地址给调用函数,以用于需要指针或地址的表达式中。格式:类型说明符*函...

  • C语言函数式编程中惰*求值详解

    在开始介绍今天要讲的知识之前,我们想要理解严格求值策略和非严格求值策略之间的区别,这样我们才能够深有体会的明白为什么需要利用这个技术。首先需要说明的是C#语言小部分采用了非严格求值策略,大部分还是严格求值策略。首先我们先演示非严格求值策略的...

  • c语言中有关随机函数的使用详解

    在C语言中,rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正...