2

次のコードは機能しません。

string currency;
currency = "EURUSD";

system("lynx -dump 'http://somesite.com/q?s="+currency+"=X' > file.txt");

C++ の呼び出しcurrencyのこの行内で使用するにはどうすればよいですか?system()

これは私のエラーです:

Error value:
main.cpp: In function ‘int main()’:
main.cpp:22:84: error: cannot convert ‘std::basic_string<char>’ to ‘const char*’ for argument ‘1’ to ‘int system(const char*)’
make: *** [main.o] Error 1
BUILD FAILED (exit value 2, total time: 890ms)

PHP では.文字列を結合するために使用しますが、C++ では構文がわかりません。

4

4 に答える 4

5

文字列ストリームの使用:

#include <sstream>
string currency;
currency = "EURUSD";
std::stringstream ss;
ss << "lynx -dump 'http://somesite.com/q?s=" << currency << "=X' > file.txt";
system(ss.str().c_str());
于 2012-07-25T05:23:07.780 に答える
2

+するstd::stringことはできませんchar []。あなたは+することができますchar []std::string

s を使用して、への呼び出しのみをstd::string取得することをお勧めします。const char*system()

string const currency = "EURUSD";
string const command_line = "lynx -dump 'http://somesite.com/q?s=" + currency + "=X' > file.txt";

system(command_line.c_str());
于 2012-07-25T05:25:29.710 に答える
2

std::string::c_str()char*C文字列関数で使用できる(何とかconstされた)を提供します。std::stringただし、最初に完全なコマンドを含むを作成することを検討する必要があります。

于 2012-07-25T05:19:59.450 に答える
0

それはうまくいくはずです。

std::string currency("EURUSD");
std::string command("lynx -dump 'http://somesite.com/q?s="+currency+"=X' > file.txt")
system(command.c_str());
于 2012-07-25T05:30:49.947 に答える