一般來講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...