0
我有一個小型的C++控制檯應用程序,它顯示一個菜單,然後執行選定的操作。啓用控制檯應用程序的輸出到腳本
另外,我寫了一個運行在StdOut上的VBScript(通過Exec實現)並輸入到StdIn的值中。
但是,當我試圖執行此腳本時,控制檯應用程序停留在scanf調用中,並且腳本沒有從輸出接收任何內容。 _flushall()沒有幫助。
有沒有人有任何想法?
謝謝。
我有一個小型的C++控制檯應用程序,它顯示一個菜單,然後執行選定的操作。啓用控制檯應用程序的輸出到腳本
另外,我寫了一個運行在StdOut上的VBScript(通過Exec實現)並輸入到StdIn的值中。
但是,當我試圖執行此腳本時,控制檯應用程序停留在scanf調用中,並且腳本沒有從輸出接收任何內容。 _flushall()沒有幫助。
有沒有人有任何想法?
謝謝。
從VBScript/Windows腳本主機這是非常困難的,因爲沒有非阻塞IO。換句話說,沒有辦法說「讀取現在可用的內容,然後立即返回」。
從腳本中可以做到這一點,只要您知道程序在每種情況下都會創建什麼輸出。
在大多數情況下,如果可能的話,最好將程序設置爲非交互式「批處理」模式,程序接受命令但無需響應提示。
VBScript甚至可以做到這一點?您至少需要發佈代碼,以顯示如何啓動C++程序以及如何寫入stdout。 – 2010-08-16 08:01:20
謝謝你,漢斯。 C++代碼由簡單的printf()(寫入標準輸出,在控制檯應用程序轉到屏幕的情況下)和scanf()(從標準輸入讀取)調用。 – 2010-08-16 08:41:45
你確定你寫的管道是腳本的stdin嗎?代碼會有幫助。 – 2010-08-16 09:17:03