Bir C++ programından argümanlar içeren bir komut satırı programını nasıl çalıştırıyorsunuz?C++ Başka bir Programın Komut satırı argümanlarıyla yürütülmesi için program
http://www.cplusplus.com/forum/general/15794/
std::stringstream stream;
stream <<"program.exe "<<cusip;
system(stream.str().c_str());
Ama gerçek bir programdır konumunu kabul görünmüyor, bu yüzden bu nasıl uygulanacağı emin değilim: Bu Çevrimiçi bulundu budur. Umudum böyle bir şey var oldu: Bu ters eğik ilgili birkaç uyarı verir
std::stringstream stream;
stream <<"C:\Tests\SO Question\bin\Release\HelloWorld.exe "<<"myargument";
system(stream.str().c_str());
- ve program çalışmıyor. Programın belirli bir konumda olmasını beklemiyor mu?
:
Bu
ben konsolda olsun çıktısında 'C: \ Testler' iç ya da dış komut, çalıştırılabilir program ya da toplu iş dosyası olarak tanınmıyor.
EK:
Yani Jon'un Yanıta göre benim için doğru sürüm şuna benzer: Bu ters eğik ilgili birkaç uyarı verir
#include <iostream>
#include <cstdlib>
#include <sstream>
#include <cstring>
int main(int argc, char *argv[])
{
std::stringstream stream;
stream << "\"C:\\Tests\\SO Question\\bin\\Release\\HelloWorld.exe\""
<< " " // don't forget a space between the path and the arguments
<< "myargument";
system(stream.str().c_str());
return 0;
}
sistemden stdout'u (...) std için :: dize veya std :: stringstream yönlendirmek konusunda bir fikrin olduğunu değişmez bir C++ dize içinde kaçan gerekir ? – Pupsik
@Pupsik Sistem işlevi bir int döndürür. Görünüşe göre, kullandığınız işletim sistemi için durum kodlarını bilmeniz gerekir: "Komut boş bir gösterici değilse, döndürülen değer sisteme ve kitaplık uygulamalarına bağlıdır, ancak genel olarak geri döndürülen durum kodu olması beklenir. destekleniyorsa komut çağırdı. " - http://www.cplusplus.com/reference/cstdlib/system/ adresinden - sonra döndürülen int'ye göre uygun bir hata mesajı üretebilirsiniz. – Stepan1010
Ne? Yorumumu okudun mu? – Pupsik