Reputation: 183
The following code doesn't work:
string currency;
currency = "EURUSD";
system("lynx -dump 'http://somesite.com/q?s="+currency+"=X' > file.txt");
How do I use currency
inside this line of C++'s system()
call?
This is my error:
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)
In PHP I use .
to join strings, but in C++ I am not sure of the syntax.
Upvotes: 2
Views: 7834
Reputation: 8968
That should work.
std::string currency("EURUSD");
std::string command("lynx -dump 'http://somesite.com/q?s="+currency+"=X' > file.txt")
system(command.c_str());
Upvotes: 0
Reputation: 141928
You can't +
a std::string
to a char []
. Although you can +
a char []
to a std::string
.
I suggest using std::string
s and getting the const char*
just for the call to 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());
Upvotes: 2
Reputation: 98108
Using 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());
Upvotes: 5
Reputation: 799250
std::string::c_str()
will give you a char*
(const'd somehow) that you can use in C string functions. But you should consider creating a std::string
that contains the full command first.
Upvotes: 2