我的.exe應用程序需要在控制檯窗口中打開。然後,我必須在控制檯應用程序中鍵入.txt
的名稱才能閱讀。我如何在我的代碼中一次執行所有這些操作?
我曾經是能夠運行它(並沒有把它讀取.TXT)與system("name.exe")
,但突然它給,如何通過C++運行.exe文件?
error: input "name.exe" is not a valid windows application
我的.exe應用程序需要在控制檯窗口中打開。然後,我必須在控制檯應用程序中鍵入.txt
的名稱才能閱讀。我如何在我的代碼中一次執行所有這些操作?
我曾經是能夠運行它(並沒有把它讀取.TXT)與system("name.exe")
,但突然它給,如何通過C++運行.exe文件?
error: input "name.exe" is not a valid windows application
你可以讓你的應用程序讀取的文件名作爲命令行參數,那麼你可以使用system(「name.exe name.txt」)運行你的應用程序。
我無法改變應用程序。它只獲取兩個.txt文件作爲輸入(用戶必須輸入每個.txt文件的名稱,然後按回車鍵運行該應用程序)。我希望通過我的C++代碼調用應用程序後完成所有這些操作。 (.txt文件的名稱是已知的) – Demian
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.
它沒有這樣工作。基本上我想要一旦我的應用程序被調用,輸入也會自動提供給它。一旦應用程序被調用,它會詢問「鍵入你的第一個文件的名稱,然後按回車」,一旦完成,它會問:「鍵入你的第二個文件的名稱,然後按回車」。 – Demian
在Windows中使用的CreateProcess API來做到這一點 - http://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v=vs.85).aspx。 請勿使用系統。
缺少的是爲什麼不使用系統:系統的行爲和返回值是平臺相關的。這就是說,如果代碼應該與平臺無關,那麼必須封裝CreateProcess API。 – Alex
你用'system()'函數打開時是否檢查過''name.exe''的路徑? – iammilind
你可以在你的其他程序之外運行'name.exe'嗎? –
聽起來像它不再在你的[路徑](http://www.computerhope.com/issues/ch000549.htm) - 看到該鏈接,並確保'name.exe'位於路徑中的目錄中。 –