1. 程式人生 > >c++重定向輸入輸出

c++重定向輸入輸出

所謂重定向輸出,就是可以把原本只是輸出在控制檯的字元,輸出到你指定的路徑檔案中。(輸入類似,就是從指定的檔案中讀取,而不是讀取在控制檯中的輸入。)重定向函式可以在任何時候開啟、關閉。

函式名:freopen 

標準宣告:FILE *freopen( const char *path, const char *mode, FILE *stream ); 

所在檔案: <stdio.h>

引數說明: 

path: 檔名,用於儲存輸入輸出的自定義檔名。 

mode: 檔案開啟的模式。和fopen中的模式(如r-只讀, w-寫)相同。 

stream: 一個檔案,通常使用標準流檔案。 

返回值:成功,則返回一個path所指定檔案的指標;失敗,返回NULL。

功能:實現重定向,把預定義的標準流檔案定向到由path指定的檔案中。標準流檔案具體是指stdin、stdout和stderr。其中stdin是標準輸入流,預設為鍵盤;stdout是標準輸出流,預設為螢幕;stderr是標準錯誤流,一般把螢幕設為預設。 


#include <stdio.h>
#include <iostream>
int main()
{ 
	int a,b; 
	freopen("D:\\in.txt","r",stdin); //輸入重定向,輸入資料將從D盤根目錄下的in.txt檔案中讀取 
	freopen("D:\\out.txt","w",stdout); //輸出重定向,輸出資料將儲存在D盤根目錄下的out.txt檔案中 
	while(cin>>a>>b) 
	cout<<a+b<<endl; // 注意使用endl 
	fclose(stdin);//關閉重定向輸入
	fclose(stdout);//關閉重定向輸出 
	return 0; 
}

freopen("D:\\in.txt","r",stdin)的作用就是把標準輸入流stdin重定向到D:\\in.txt檔案中,這樣在用scanf或是用cin輸入時便不會從標準輸入流讀取資料,而是從in.txt檔案中獲取輸入。只要把輸入資料事先貼上到in.txt中即可。

類似的,freopen("D:\\out.txt","w",stdout)的作用就是把stdout重定向到D:\\out.txt檔案中,這樣輸出結果就可以通過開啟out.txt檔案檢視。