2

以下代码不起作用:

string currency;
currency = "EURUSD";

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

如何currency在这行 C++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::c_str()会给你一个char*(const'd不知何故)你可以在C字符串函数中使用。但是您应该首先考虑创建一个std::string包含完整命令的命令。

于 2012-07-25T05:19:59.450 回答
2

你不能+astd::string到 a char []。虽然你可以+achar []到 a std::string

我建议使用std::strings 并获得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 回答
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 回答