使用freopen函式重定向輸入流

2021-07-16 15:45:26 字數 791 閱讀 3726

有那麼一陣子,除錯程式的時候經常遇到大量輸入資料的情況,如果從控制台輸入,將是非常耗時且容易出錯,幸好有freopen函式,可以將輸入重定向到檔案中。也就是說,將輸入資料放到檔案中,呼叫freopen函式將輸入流從控制台重定向為檔案,那麼後續從控制台讀取輸入資料的操作,將自動變為從檔案中讀取,不需要手動從控制台輸入了。

用乙個簡單的例子,記錄下freopen的用法:

int main(int argc, char **argv)

當然,freopen也可以重定向輸出流,如果想將printf的輸出結果放到output.txt檔案中,那麼可以通過下面的語句來實現:

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

以下是freopen函式簡介:

函式宣告:

file *freopen(const char *filename, const char *mode, file *stream);

引數說明:

filename: 需要重定向到的檔名(比如上述input.txt)

mode: 檔案訪問模式,"r"-唯讀,"w"-只寫,"a"-追加寫入

stream: 需要被重定向的檔案流(如上述stdin)

返回值:

重定向成功,則返回指向該重定向流的指標,失敗返回null

檔案讀寫重定向freopen函式

函式原型 file freopen const char filename,const char mode,file file 其中file 是檔案指標,參考 c檔案 mode是操作型別,最常用的就是 r 和 w 表示讀寫。file是需要重定向到的檔案指標 示例 include include us...

重定向輸入輸出流freopen函式

乙個acm題目的解決背後隱藏著大量的測試,只有自己覺得把自己所能夠想到的一切可能都進行輸入測試並得到正確答案時才敢嘗試提交,畢竟在acm比賽中是會進行罰時的,寧可多測試幾次也不敢武斷提交。然而多數題目光測試資料就已經很多了,如果測試時一次一次手動輸入那將要耗費大量的時間,將要大大降低a題效率,這時候...

使用freopen重定向輸入輸出流

在做acm演算法題目時,經常需要測試大量輸入資料。freopen函式可用於演算法本地除錯,等演算法執行正確後便可將 提交系統。freopen函式的主要功能是將預定義的標準流檔案定向到由path指定的檔案中。file freopen const char path,const char mode,fi...