以下代码不起作用:
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 ++中我不确定语法。
答案 0 :(得分:5)
使用stringstream:
#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());
答案 1 :(得分:2)
std::string::c_str()
将为您提供一个可以在C字符串函数中使用的char*
(不知何故)。但是你应该考虑先创建一个包含完整命令的std::string
。
答案 2 :(得分:2)
您不能+
std::string
到char []
。虽然您可以+
char []
到std::string
。
我建议您使用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());
答案 3 :(得分:0)
那应该有用。
std::string currency("EURUSD");
std::string command("lynx -dump 'http://somesite.com/q?s="+currency+"=X' > file.txt")
system(command.c_str());