控制台輸入輸出重定向

2021-06-19 00:45:41 字數 641 閱讀 3993

一般來講gui程式不能使用stdin和stdout,但是有時有些特殊需要,希望gui程式也有控制台,如:乙個程式,既可以以gui方式執行,又可以如果使用者在控制台裡打程式名的話,就以控制台程式的方式執行。

通過allocconsole() 和 attachconsole() 這兩個win api就能實現上面的需求。這兩個api分別是在gui(mfc)程式中分配乙個控制台和將程式附著到乙個控制台上。

用法舉例:

attachconsole(attach_parent_process); // 將當前程式附著到父程序上,因為是從控制台啟動的,所以當前程式的父程序就是那個控制台。

freopen("conin$", "r+t", stdin); // 重定向 stdin

freopen("conout$", "w+t", stdout); // 重定向stdout

*********************************************

allocconsole();

freopen("conin$", "r", stdin);

freopen("conout$", "w", stdout);

freopen("conout$", "w", stderr);

freeconsole();

控制台程式的標準輸入輸出的重定向

控制台程式的標準輸入輸出的重定向 今天終於解決這個問題困擾我幾個月的問題,心裡很高興!在使用重定向技術需要注意以下幾個問題 1 子程序程式每一句輸出 後需要呼叫fflush stdout 函式,這樣把輸出的內容放入緩衝區,父程序才能及時的讀到輸出資料 2 如果不是使用fflush stdout 函式...

控制台程式的標準輸入輸出的重定向

控制台程式的標準輸入輸出的重定向 今天終於解決這個問題困擾我幾個月的問題,心裡很高興!在使用重定向技術需要注意以下幾個問題 1 子程序程式每一句輸出 後需要呼叫 fflush stdout 函式,這樣把輸出的內容放入緩衝區,父程序才能及時的讀到輸出資料 2 如果不是使用 fflush stdout ...

控制台輸入 輸出

1 使用input 方法可以進行控制台輸入 例 name input 請輸入名字 此時控制台會顯示 請輸入名字 輸入完畢後按下enter會將使用者輸入的內容賦值給name變數 name input 請輸入名字 print 你好 name 2 print 輸出的多種形式 在列印結尾顯示內容 print...