引号C ++中的变量

时间:2014-02-28 22:06:36

标签: c++ variables quotation-marks

让我首先说我找不到相同的问题,但我的搜索关键字相当通用,所以如果你知道一个回复我的问题的线程,请指出我,我会关闭这个帖子。

我正在用c ++重写我的bash脚本,以帮助我更深入地掌握语言。我遇到的问题如下:

string input = "/wam/wxx.cpp";
string output = "/wam/wxx.exe"; 
system ("/MinGW/bin/g++.exe input  -o output");

(这只是一个小例子;在我的实际代码中,变量是用户输入的)

显然,我将“输入”和“输出”这两个词传递给我的编译器而不是那些名称的变量。我试过了

system ("/MinGW/bin/g++.exe" input  "-o" output);

以及引用/不引用的其他组合,其中任何一个都不起作用。系统命令需要引号,那么有没有办法在这些引号中正确识别我的变量? (目前我将这些变量保存到文本文件中,然后将它们加载到运行编译器的bash脚本中,这使我无法在c ++中编写此内容。)

提前致谢!

编辑:澄清一下,我

using namespace std 

2 个答案:

答案 0 :(得分:0)

这应该有所帮助:

string input = "/wam/wxx.cpp";
string output = "/wam/wxx.exe"; 
string command = "/MingW/bin/g++.exe "
command += input;
command += " -o "
command += output;
system(command.c_str());

您需要std::string::c_str()将字符串转换为char数组,并且无法将std::string添加到字符串文字中,但是,您可以将文字添加到{{1 {},或std::stringstd::string

答案 1 :(得分:0)

由于它们(大概)std::string,您可以将它们与+粘贴在一起,如下所示:

std::string cmd = "/MinGW/bin/g++.exe";

std::string fullcmd = cmd + " " + input + " -o " + output;
system(fullcmd.c_str());

您需要fullcmd.c_str(),因为system采用C样式字符串,而不是C ++样式字符串。