程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 標准輸入輸出重定向,輸入輸出重定向

標准輸入輸出重定向,輸入輸出重定向

編輯:C++入門知識

標准輸入輸出重定向,輸入輸出重定向


轉自:http://blog.csdn.net/diandian82/article/details/783777

 

1. C:

#include <stdio.h>

#include <stdlib.h>

void test_stdin()

{

    char buf[128];

freopen("1.txt", "r", stdin); //redirect stdin

    scanf("%s",buf);

    printf("%s\n",buf);

    freopen("CON", "r", stdin); //recover(Windows)

//freopen("/dev/console", "r", stdin); //recover(Linux)

//freopen("/dev/pts/0", "r", stdin); //recover stdin(Linux : my putty client)

    scanf("%s",buf);

    printf("%s\n",buf);

}

void test_stdout()

{

    freopen("1.txt", "w", stdout); //redirect stdout

    printf("test");

    freopen("CON", "w", stdout); //recover stdout(Windows)

//freopen("/dev/console", "w", stdout); //recover stdout(Linux)

//freopen("/dev/pts/0", "w", stdout); //recover stdout(Linux : my putty client)

    printf("OK\n");

}

int main()

{

    printf("Test stdout : \n");

    test_stdout();

    printf("Test stdin : \n");

    test_stdin();

    return 0;

}

 

2.Python:

#! /usr/bin/python

import sys

'''

  File : redirect.py

  Author : Mike

  E-Mail : [email protected]

'''

print "Test stdout : "

#redirect stdout

tmp = sys.stdout

fp = open("1.txt","w")

sys.stdout = fp

print 'Just a test'

sys.stdout = tmp #recover stdout

print 'test2'

fp.close()

print "Test stdin : "

#redirect stdin

tmp = sys.stdin

fp = open("1.txt","r")

sys.stdin = fp

strTest = raw_input()

print strTest

sys.stdin = tmp # recover stdin

strTest = raw_input()

print strTest

fp.close()

 

3. C++:

#include <iostream>

#include <fstream>

void main()

{

    std::ofstream logFile("c://out.txt");

    std::streambuf *outbuf = std::cout.rdbuf(logFile.rdbuf());

    std::streambuf *errbuf = std::cerr.rdbuf(logFile.rdbuf());

    // do the actual work of the program;

    // GUI code and event loop would go here

    std::cout << "This would normally go to cout but goes to the log file/n";

    std::cerr << "This would normally go to cerr but goes to the log file /n";

    logFile << "This goes to the log file/n";

    // end of program body

    // restore the buffers

    std::cout.rdbuf(outbuf);

    std::cerr.rdbuf(errbuf);

    // It will output in your console

    std::cout << "This would normally go to cout but goes to the log file/n";

    std::cerr << "This would normally go to cerr but goes to the log file /n";

}


什是重定向?什是輸入重定向,什是輸出重定向?

將ls –l的輸出結果保存到/root/my.out這個文件中
將/root/my.out作為cat的輸入,讀出/root/my.out的內容
輸出追加重定向就是將輸出追加到一個已存在的文件中,這個命令的作用是找出文件系統中含有bin字符的文件,但是bin前面必須還有一個任意字符,即找出含有四個字符,但是結尾為bin的文件,然後將結果保存到my1.out這個文件中
重定向就是通過各種的方法將各種網絡請求重新定個方向轉到其它位置
輸入重定向:是指不使用系統提供的標准輸入端口,而進行重新的指定。符號<.
輸出重定向>或者>>
可以參考一下內容zh.wikipedia.org/...90%91_(%E8%AE%A1%E7%AE%97%E6%9C%BA)

 

linux下怎將標准輸出輸出重定向到文件中

ls > filename
cat filename > new_filename
……
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved