關於C語言的輸入輸出重定向

2021-07-11 03:22:00 字數 1062 閱讀 9051

1、一種是在程式中設定:

使用freopen將輸入輸出重定向。

c語言的標準輸入輸出為stdin和stdout,這兩個變數的型別為file*型別,也就是說,標準輸入輸出操作,其本質還是檔案操作。

當需要重定向時,可以呼叫

#include

freopen("d:\\data_in.txt","r",stdin); 將輸入定向為檔案d盤下的檔案data_in.txt檔案

(linux下的路徑表示有點差別:freopen("/data_in.txt","r",stdin);表示根目錄下的data_in.txt檔案。)

freopen("d:\\data_out.txt","w",stdout); 將輸出定向到d盤下的data_out.txt目錄。

當呼叫該函式時,需要引用標頭檔案stdio.h,在使用freopen()之後的標準輸出或輸入會重新定向,而之前的不會變。

2、另一種是執行時重定向:

在命令列輸入:

myprog.exe  > x:\\data_out.txt   (在myprog.exe所在的資料夾下)

可以將輸出重定向到x盤下的data_out.txt檔案中,這時程式中所有的輸出都將重定向到該檔案,除非在程式中使用了freopen()函式,如果是這樣的話,程式中freopen()函式之前的輸出重定向到data_out.txt檔案,而freopen()之後的將定向到freopen()指定的檔案中。

這裡「 > 」表示覆蓋式輸出,而「 >>  」 表示追加式輸出

重定向輸入的方式也類似:在命令列輸入 myprog.exe < data_in.txt 

當程式中依次出現scanf()、getchar() 輸入函式時,就會自動的依次從檔案data_in.txt中讀取對應長度的文字(以位元組算)。需要注意的是檔案的結束標記為eof

例如要讀取檔案中的所有文字可以寫如下**:

while( getchar() != eof)

C 輸入輸出重定向

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

輸入輸出重定向

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

輸入輸出重定向

1.標準輸入的控制 語法 命令 檔案將檔案做為命令的輸入。例如 mail s mail test wesongzhou hotmail.com file1 將檔案file1 當做信件的內容,主 題名稱為mail test,送給收信人。2.標準輸出的控制 語法 命令 檔案將命令的執行結果送至指定的檔案...