C++プログラムの引数を使用してコマンドラインプログラムを実行するにはどうすればよいですか?C++コマンドライン引数を使用して別のプログラムを実行するプログラム
http://www.cplusplus.com/forum/general/15794/
std::stringstream stream;
stream <<"program.exe "<<cusip;
system(stream.str().c_str());
しかし、実際のプログラムの場所を受け入れていないようですので、私はこれを適用するかどうかはわからない:これは私がオンラインに見つけたものです。
std::stringstream stream;
stream <<"C:\Tests\SO Question\bin\Release\HelloWorld.exe "<<"myargument";
system(stream.str().c_str());
これは、バックスラッシュに関するいくつかの警告を表示します。プログラムが動作しません。あなたは、特定の場所にプログラムを持っていることを期待していますか?
これは私がコンソールに出力され得る:
「C:\テストは、」は、内部コマンドまたは外部コマンドとして認識されない、 操作可能なプログラムまたはバッチファイル。
補遺:
だからジョンの答えに基づいて、私のために正しいバージョンは次のようになります。これは、バックスラッシュに関連するいくつかの警告を与え
#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;
}
であるあなたが書くために必要なものを、C++の文字列リテラル内でエスケープするためにはstdするシステム(...)からの標準出力をリダイレクトする方法任意のアイデア::文字列またはSTD ::にstringstreamを必要とします? – Pupsik
@Pupsikシステム関数はintを返します。明らかに、使用しているオペレーティングシステムのステータスコードを知っている必要があります。「コマンドがヌルポインタでない場合、返される値はシステムとライブラリの実装によって異なりますが、一般的には、サポートされていれば、いわゆるコマンドです。 - http://www.cplusplus.com/reference/cstdlib/system/から返されたintに基づいて適切なエラーメッセージを生成することができます。 – Stepan1010
何ですか?あなたは私のコメントを読んだのですか? – Pupsik