2012-05-30 148 views
0

我的.exe應用程序需要在控制檯窗口中打開。然後,我必須在控制檯應用程序中鍵入.txt的名稱才能閱讀。我如何在我的代碼中一次執行所有這些操作?
我曾經是能夠運行它(並沒有把它讀取.TXT)與system("name.exe"),但突然它給,如何通過C++運行.exe文件?

error: input "name.exe" is not a valid windows application

+2

你用'system()'函數打開時是否檢查過''name.exe''的路徑? – iammilind

+0

你可以在你的其他程序之外運行'name.exe'嗎? –

+0

聽起來像它不再在你的[路徑](http://www.computerhope.com/issues/ch000549.htm) - 看到該鏈接,並確保'name.exe'位於路徑中的目錄中。 –

回答

0

你可以讓你的應用程序讀取的文件名作爲命令行參數,那麼你可以使用system(「name.exe name.txt」)運行你的應用程序。

+0

我無法改變應用程序。它只獲取兩個.txt文件作爲輸入(用戶必須輸入每個.txt文件的名稱,然後按回車鍵運行該應用程序)。我希望通過我的C++代碼調用應用程序後完成所有這些操作。 (.txt文件的名稱是已知的) – Demian

0

1- type "name.txt" 2- press enter 3- type name2.exe 4- Press enter. How can I do that through my c++ code?

std::string appName, fileName 
std::cin >> appName >> fileName; 
system(std::string(appName + " " + filename).c_str()) 

如果名稱包含空格,您可能需要使用getline看他們,而不是>>

- 編輯 -

Basically I want once my application is called the input is also automatically given to it.

Creating Child process with redirected input (msdn)

_popen documentation(msdn)

pipe to subprocess (GNU)

+0

它沒有這樣工作。基本上我想要一旦我的應用程序被調用,輸入也會自動提供給它。一旦應用程序被調用,它會詢問「鍵入你的第一個文件的名稱,然後按回車」,一旦完成,它會問:「鍵入你的第二個文件的名稱,然後按回車」。 – Demian