輸入輸出重定向

2021-09-08 15:56:55 字數 2401 閱讀 8106

想象一下,當我們寫了個程式,開始是在命令列下執行的程式,後來用mfc之類的改寫為窗體程式,原先用printf輸出的trace都不可見了,但是我們又需要(輸出到檔案分析),怎麼辦?

1、開始寫的時候你定義乙個mytrace的巨集;

2、你可以把printf換成fprintf;

3、使用輸出重定向。

第一種情況很方便,可程式已經寫出來了,顯然不大可能;

第二種情況可以是可以,但勞動量比較大;

第三種我覺得可以。

還記得不,在windows終端輸入 "dir > 1.txt",或在linux終端輸入"ls > 1.txt",即可實現把當前目錄的檔案列表匯出到"1.txt"中。這裡就用到了輸出重定向,很方便吧,我們也可以仿照這個去做。

這裡只是提供乙個思路,下面有幾段io重定向的示例**,有c的,python的,還有perl的(年終總結,三種語言都總結了,哈哈),僅供參考。

基於c的示例**:

1/*2

file : redirect.c

3author : mike

4e-mail : [email protected]*/

6 #include

7 #include 89

void test_stdin()

10 21

22void test_stdout()

23 31

32int main()

33

基於python的示例**:

1

#! /usr/bin/python

2import sys

3'''

4file : redirect.py

5author : mike

6e-mail : [email protected]

7'''

8print

"test stdout : "9

#redirect stdout

10 tmp = sys.stdout

11 fp = open("

1.txt

","w

")12 sys.stdout = fp

13print

'just a test

'14 sys.stdout = tmp #

recover stdout

15print

'test2

'16 fp.close()

1718

print

"test stdin : "19

#redirect stdin

20 tmp = sys.stdin

21 fp = open("

1.txt

","r

")22 sys.stdin = fp

23 strtest = raw_input()

24print strtest

25 sys.stdin = tmp #

recover stdin

26 strtest = raw_input()

27print strtest

28 fp.close()

基於perl的示例**:

1

#! /usr/bin/perl

2 =cut

3 file : redirect.pl

4 author : mike

5 e-mail : [email protected]

6 =cut78

#redirect stdout

9print

"test stdout : \n

";10

open

log,"

> 2.txt

";11

select

log;

12print

"just a test\n

";13

#recover stdout

14select stdout;

15print

"just a test2\n

";16

close

log;

1718

#redirect stdin

19print

"test stdin : \n

";20

open log2,"

< 2.txt

";21

$line = ;

22print

$line;

23close log2;

24$line = ;

25print

$line;

好,就這些了,希望對你有幫助。

輸入輸出重定向

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

輸入輸出重定向

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

輸入輸出重定向

想象一下,當我們寫了個程式,開始是在命令列下執行的程式,後來用mfc之類的改寫為窗體程式,原先用printf輸出的trace都不可見了,但是我們又需要 輸出到檔案分析 怎麼辦?1 開始寫的時候你定義乙個mytrace的巨集 2 你可以把printf換成fprintf 3 使用輸出重定向。第一種情況很...