C語言文件操作函數freopen詳解
今天做USACO 用到了文件的操作。 之前做USACO只是格式化的.些 寫 freopen("","r",stdin) 和"freopen("","w",stdout)"
百度百科上是這麼介紹的:
函數名: freopen
功 能: 替換一個流,或者説重新分配文件指針,實現重定向。如果stream流已經打開,則先關閉該流。如果該流已經定向,則freopen將會清除該定向。此函數一般用於將一個指定的文件打開一個預定義的流:標準輸入、標準輸出或者標準出錯。
用 法: FILE *freopen(const char *filename,const char *type, FILE *stream);
頭文件:stdio.h
例1:
複製代碼 代碼如下:
#include
#include
int main()
{
if(freopen("","w",stdout)==NULL)
fprintf(stderr,"errorn");
printf("This is in the filen"); //這句話會在中顯示。
fclose(stdout); //使用fclose()函數就可以把緩衝區內最後剩餘的數據輸出到磁盤文件中,並釋放文件指針和有關的緩衝區。
return 0;
}
例2:
複製代碼 代碼如下:
//首先在同路徑下創建一個文本文檔寫入若干數字
#include
#include
int main()
{
freopen("","r",stdin); //從 中讀入數據
freopen("","w",stdout); // 將最後數據寫入中
int a,b;
while(scanf("%d%d",&a,&b)!=EOF) //數據是從中輸入的
printf("%dn",a+b); //寫入中
fclose(stdin);
fclose(stdout);
return 0;
}
freopen("CON","w",stdout) 表示在控制枱窗口上寫入數據;
例3:
複製代碼 代碼如下:
#include
#include
int main()
{
// FILE *stream;
freopen("","w",stdout);
printf("this is in "); // 這句話在中顯示
freopen("CON","w",stdout);
printf("And this is in command.n"); //這句話在控制枱上顯示
return 0;
}
例5: 關於fread 可以通過下面的程序,一看就知道什麼意思了
複製代碼 代碼如下:
#include
#include
int main()
{
FILE *stream
char s[102400]="";
if((stream=freopen("","r",stdin))==null)
exit(-1);
fread(s,1,1024,stdin); // 讀取中1到1024位,放入s中 ,我是這麼理解的
printf("%sn",s);
return 0;
}