Jak mogę wyświetlić dane wyjściowe polecenia systemowego. Ex:Wyświetlanie wyjściowe wywołania system() w C++
int _tmain(int argc, _TCHAR* argv[]) {
system("set PATH=%PATH%;C:/Program Files (x86)/myFolder/bin");
system("cd C:/thisfolder/");
std::cin.get();
return 0;
}
kiedy uruchomić program w Visual Studio to daje mi się czarny ekran i nie mogę zobaczyć prowadzony polecenia. Potrzebuję go, żeby sprawdzić, czy zadziałało, czy nie. Dzięki!
Prawdopodobnie problem z przekierowaniem wyjścia. Funkcja 'system()' używa interpretera poleceń do uruchomienia łańcucha argumentów funkcji 'system()', więc może być tak, że interpreter poleceń nie dziedziczy twojego standardu, więc dane wyjściowe z polecenia nie trafiają do konsoli okno. Inną rzeczą może być to, że polecenia, których używasz, nie generują żadnych wyników. wypróbuj inne polecenie, takie jak polecenie 'echo', więc wykonaj coś w stylu' system ("echo to jest wyjście") '. –
Nie jestem pewien, czy 'set'-ing (lub' cd') z jednym wywołaniem 'system' wpłynie na następne wywołanie' systemu' (w POSIX i Linux, jestem pewien, że to nie działa. znasz system Windows). –
Czy rozważyłeś użycie jakiegoś interfejsu API systemu operacyjnego (np. [_chdir] (https://msdn.microsoft.com/en-us/library/bf7fwze1.aspx) ...) zamiast wywoływać 'system'? Lub użyj jakiegoś frameworku takiego jak [POCO] (http://pocoproject.org/), [Qt] (http://qt-project.org/), lub może Boost. –