C語言中輸入輸出重定,freopen 妙用

2021-07-04 07:35:37 字數 2642 閱讀 1896

使用的理由(範圍):如果輸入資料很龐大,需要一次又一次的重新輸入和除錯時可採用本函式。

freopen ()函式:

1.格式

file 

*freopen 

(const

char

*filename

,const

char

*mode

,file 

*stream );

2.引數說明

filename: 要開啟的檔名

mode: 檔案開啟的模式,和

fopen

中的模式

(r/w)相同

stream: 檔案指標,通常使用標準流檔案

(stdin/stdout/stderr)

返回值:成功,則返回乙個path

所指定檔案的指標;失敗,返回

null

。(一般可以不使用它的返回值) 

功能:實現重定向,把預定義的標準流檔案定向到由path

指定的檔案中。標準流檔案具體是指

stdin

、stdout

和stderr

。其中stdin

是標準輸入流,預設為鍵盤;

stdout

是標準輸出流,預設為螢幕;

stderr

是標準錯誤流,一般把螢幕設為預設。通過呼叫

freopen

,就可以修改標準流檔案的預設值,實現重定向。

3.使用方法

因為檔案指標使用的是標準流檔案,因此我們可以不定義檔案指標。

接下來我們使用freopen()

函式以唯讀方式

r(read)

開啟輸入檔案

slyar.in

freopen

("slyar.in"

,"r"

,stdin);

然後使用freopen()

函式以寫入方式

w(write)

開啟輸出檔案

slyar.out

freopen

("slyar.out"

,"w"

,stdout);

接下來的事情就是使用freopen()

函式的優點了,我們不再需要修改

scanf

和printf

,而是維持**的原樣就可以了。因為

freopen()

函式重定向了標準流,使其指向前面指定的檔案。

最後只要使用fclose

關閉輸入檔案和輸出檔案即可。

fclose

(stdin);

fclose

(stdout);

若要恢復控制代碼,可以重新開啟標準控制台裝置檔案,只是這個裝置檔案的名字是與作業系統相關的。

dos/wi

ndows:

freopen

("con"

,"r"

,stdin);

linux:

freopen

("/dev/console"

,"r"

,stdin);

4.演算法實

輸入一些整數,求出它們的最小值、最大值和平均值(保留3

位小數)。輸入保證這些數都是不超過

1000

的整數。

樣例輸入:2 8 3 5 1 7 3 6

樣例輸出:1 8 4.375

參考程式1:

#define test

#include

#define mm 1000

main()

printf("%d %d %.3lf\n",min,max,(double)sum/i); }

說明:(1

)對於本題來說,我們使用了重定向簡單地說,就是程式中用標準輸入

scanf()

函式輸入的資料從

d:\c2_4_in.txt

中讀取,

printf()

函式輸出的資料直接寫入

d:\c2_4_out.txt

中去,螢幕上不在等待輸入資料和不再顯示輸出結果。

(2)如果把第一句去掉(

#define test),

#ifdef test

freopen("d:\\c2_4_in.txt","r",stdin);

freopen("d:\\c2_4_out.txt","w",stdout);

#endif

就不起任何作用,這時還必須用標準輸入輸出。

參考程式2:

#include

#define mm 1000

main()

fprintf(fout,"%d %d %.3lf",min,max,(double)sum/i);

fclose(fin);

fclose(fout);}

以上程式在vc6.0環境測試通過。

C語言中輸入輸出重定,freopen 妙用

使用的理由 範圍 如果輸入資料很龐大,需要一次又一次的重新輸入和除錯時可採用本函式。freopen 函式 1.格式 file freopen const char filename const char mode file stream 2.引數說明 filename 要開啟的檔名 mode 檔案開...

c語言中的輸入輸出(一)

是轉義字元,以上這類符號用於格式輸入與格式輸出,就是我們常見的printf和scanf函式中。在輸入輸出時,對不同型別的資料 如int,float,char等 要使用不同的格式說明。d 按照十進位制整數形式輸入 出 帶符號整數,正數不輸出符號 o 按照八進位制輸入 出無符號整數 x 按照十六進製制輸...

Shell教程十一 Shell 輸入 輸出重定向

大多數 unix 系統命令從你的終端接受輸入並將所產生的輸出傳送回 到您的終端。乙個命令通常從乙個叫標準輸入的地方讀取輸入,預設情況下,這恰好是你的終端。同樣,乙個命令通常將其輸出寫入到標準輸出,預設情況下,這也是你的終端。重定向命令列表如下 命令說明 command file 將輸出重定向到 fi...