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

arknldoa  于 2023-05-02  发布在  其他
关注(0)|答案(4)|浏览(153)

下面的代码不起作用:

string currency;
currency = "EURUSD";

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

如何在C++的system()调用的这一行中使用currency
这是我的错误:

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++中,我不确定语法。

hyrbngr7

hyrbngr71#

使用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());
fykwrbwg

fykwrbwg2#

std::string::c_str()会给予你一个char*(const'd somehow),你可以在C字符串函数中使用。但是您应该考虑先创建一个包含完整命令的std::string

cyvaqqii

cyvaqqii3#

你不能把+ a std::string转换成char []。虽然你可以+一个char []到一个std::string
我建议使用std::string s并获取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());
wgeznvg7

wgeznvg74#

应该可以

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

相关问题