C ++如何在字符串中使用变量

时间:2012-07-25 05:18:09

标签: c++ string

以下代码不起作用:

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 个答案:

答案 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::stringchar []。虽然您可以+ 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());