C語言重定向輸入輸出的方法

2021-07-16 02:58:52 字數 738 閱讀 4151

在c標準庫標頭檔案中有乙個freopen的函式,用於重定向輸入輸出流。該函式可以在不改變**原貌的情況下改變輸入輸出環境,但使用時應當保證流是可靠的。函式原型是

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

引數說明:

filename 需要重定向到的檔名或檔案路徑。

mode   代表檔案訪問許可權的字串,"r"表示唯讀,"w"表示只寫,"a"表示追加寫入。

stream 需要被重定向的檔案流。

返回值:如果成功,則返回該指向該輸出流的檔案指標,否則返回為null。

當標準輸出stdout被重定向到指定檔案後,如何把它重定向回原來「預設」的輸出裝置(即顯示器)呢?

c標準庫是不支援的。沒有任何方法可以恢復原來的輸出流。但是,存在依賴具體平台的實現。

在作業系統中,命令列控制台(即鍵盤或者顯示器)被視為乙個檔案,既然是檔案,那麼就有「檔名」。命令列控制台檔案在dos作業系統和windows作業系統中的檔名為"con",在其它的作業系統(例如unix、linux、mac os x、android等等)中的檔名為"/dev/tty"。

所以,在windows中可以使用

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

其它作業系統中使用:

freopen( "/dev/tty", "w", stdout );

這樣就可以恢復原來輸出裝置的使用。

C 輸入輸出重定向

這個對經常在oj上做題的童鞋們很有用。oj基本都是用標準輸入輸出 usaco除外 但如果你在除錯的時候也都是從控制台輸入,那就太浪費寶貴的時間了。我們可以重定向標準輸入,除錯的時候從檔案讀,提交時從標準輸入讀。在c語言中,方法比較簡單。使用函式freopen freopen data.in r st...

C 輸入輸出重定向方法示例

重定向是什麼 所謂重定向就是把某應用原來的操作物件改成別的。比如說,我這個程式原來是從鍵盤接收資訊的,現在該從乙個叫config.ini的檔案中接收資訊了 本來輸出的資訊都顯示在螢幕上的,現在我不顯示在螢幕上了,我要輸出到result.txt文字中儲存起來。本文主要給大家介紹了關於c 輸入輸出重定向...

輸入輸出重定向

使用標準輸入流,標準輸出流和標準錯誤流,這些標準流都被預分配給鍵盤和顯示器。在需要的時候,可以使用重定向臨時改變這些預設分配。重定向是這樣一種過程,我們借助它指定乙個用於替代某個 標準檔案的檔案。輸入重定向 可以將標準輸入從鍵盤重定向到任何文字檔案。輸入重定向運算子為小於號 意味著該命令從此給 派的...