C語言文件操作函數(shù)freopen詳細(xì)解析
今天做USACO 用到了文件的操作。 之前做USACO只是格式化的些 寫 freopen("xxx.in","r",stdin) 和"freopen("xxx.out","w",stdout)"
百度百科上是這么介紹的:
函數(shù)名: freopen
功 能: 替換一個(gè)流,或者說重新分配文件指針,實(shí)現(xiàn)重定向。如果stream流已經(jīng)打開,則先關(guān)閉該流。如果該流已經(jīng)定向,則freopen將會(huì)清除該定向。此函數(shù)一般用于將一個(gè)指定的文件打開一個(gè)預(yù)定義的流:標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出或者標(biāo)準(zhǔn)出錯(cuò)。
用 法: FILE *freopen(const char *filename,const char *type, FILE *stream);
頭文件:stdio.h
例1:
#include <stdio.h>
#include <stdlib.h>
int main()
{
if(freopen("file.txt","w",stdout)==NULL)
fprintf(stderr,"error\n");
printf("This is in the file\n"); //這句話會(huì)在file.txt中顯示。
fclose(stdout); //使用fclose()函數(shù)就可以把<A target=_blank>緩沖區(qū)</A>內(nèi)最后剩余的數(shù)據(jù)輸出到磁盤文件中,并釋放文件指針和有關(guān)的緩沖區(qū)。
return 0;
}
例2:
//首先在同路徑下創(chuàng)建一個(gè)in.txt文本文檔寫入若干數(shù)字
#include <stdio.h>
#include <stdlib.h>
int main()
{
freopen("in.txt","r",stdin); //從in.txt 中讀入數(shù)據(jù)
freopen("out.txt","w",stdout); // 將最后數(shù)據(jù)寫入out.txt中
int a,b;
while(scanf("%d%d",&a,&b)!=EOF) //數(shù)據(jù)是從in.txt中輸入的
printf("%d\n",a+b); //寫入out.txt中
fclose(stdin);
fclose(stdout);
return 0;
}
freopen("CON","w",stdout) 表示在控制臺(tái)窗口上寫入數(shù)據(jù);
例3:
#include <stdio.h>
#include <stdlib.h>
int main()
{
// FILE *stream;
freopen("file1.txt","w",stdout);
printf("this is in file1.txt"); // 這句話在file1.txt中顯示
freopen("CON","w",stdout);
printf("And this is in command.\n"); //這句話在控制臺(tái)上顯示
return 0;
}
例5: 關(guān)于fread 可以通過下面的程序,一看就知道什么意思了
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *stream
char s[102400]="";
if((stream=freopen("file.txt","r",stdin))==null)
exit(-1);
fread(s,1,1024,stdin); // 讀取file.txt中1到1024位,放入s中 ,我是這么理解的
printf("%s\n",s);
return 0;
}
相關(guān)文章
C++設(shè)計(jì)模式之組合模式(Composite)
這篇文章主要為大家詳細(xì)介紹了C++設(shè)計(jì)模式之組合模式Composite,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04
c/c++獲取系統(tǒng)時(shí)間函數(shù)的方法示例
這篇文章主要介紹了c/c++獲取系統(tǒng)時(shí)間函數(shù)的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02
C++實(shí)現(xiàn)將輸入的內(nèi)容輸出到文本文件
這篇文章主要介紹了C++實(shí)現(xiàn)將輸入的內(nèi)容輸出到文本文件問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
探討:C++中函數(shù)返回引用的注意事項(xiàng)
本篇文章是對(duì)C++中函數(shù)返回引用的注意事項(xiàng)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
一文詳解C++中的轉(zhuǎn)換構(gòu)造函數(shù)
在 C/C++ 中,不同的數(shù)據(jù)類型之間可以相互轉(zhuǎn)換,無需用戶指明如何轉(zhuǎn)換的稱為自動(dòng)類型轉(zhuǎn)換(隱式類型轉(zhuǎn)換),需要用戶顯式地指明如何轉(zhuǎn)換的稱為強(qiáng)制類型轉(zhuǎn)換,本文就給大家詳細(xì)介紹一下C++的轉(zhuǎn)換構(gòu)造函數(shù),需要的朋友可以參考下2023-09-09

