C++ 引号C+中的变量+;

C++ 引号C+中的变量+;,c++,variables,quotation-marks,C++,Variables,Quotation Marks,首先,我想说,我找不到一个完全相同的问题,但我的搜索关键字是相当通用的,因此,如果您知道一个线程可以回答我的问题,请向我指出,我将关闭此线程 我正在用C++编写一个BASH脚本来帮助我更准确地掌握语言。我遇到的问题如下: string input = "/wam/wxx.cpp"; string output = "/wam/wxx.exe"; system ("/MinGW/bin/g++.exe input -o output"); (这只是一个小说明;在我的实际代码中,变量是用户输入

首先,我想说,我找不到一个完全相同的问题,但我的搜索关键字是相当通用的,因此,如果您知道一个线程可以回答我的问题,请向我指出,我将关闭此线程

我正在用C++编写一个BASH脚本来帮助我更准确地掌握语言。我遇到的问题如下:

string input = "/wam/wxx.cpp";
string output = "/wam/wxx.exe"; 
system ("/MinGW/bin/g++.exe input  -o output");
(这只是一个小说明;在我的实际代码中,变量是用户输入的)

显然,我是在将单词“input”和“output”传递给我的编译器,而不是这些名称的变量。我试过了

system ("/MinGW/bin/g++.exe" input  "-o" output);
以及引用/不引用的其他组合,它们都不起作用。系统命令需要引号,那么有没有办法在引号中正确识别我的变量?(目前我将这些变量保存到文本文件中,然后将它们加载到运行编译器的BASH脚本中,这就破坏了我在C++中开始编写的目的。) 提前谢谢

编辑:澄清一下,我是

using namespace std 
这将有助于:

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
添加到字符串文字中,但是,您可以将文字添加到
std::string
,或者将
std::string
添加到
std::string
,因为它们(大概)是
std::string
,您可以将它们与
+
一起粘贴,如下所示:

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

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

您需要<代码> FultCMD.CyString()/Cube >,因为<代码> Stase< /Cord>采用C风格字符串,而不是C++风格字符串。<我想知道是什么让你认为这个语法是有效的C++?你一定是从一个奇怪的地方学习语言的……当你高中辍学自学编程时,会发生这种情况;)那么你是在编语法并尝试编译器是否接受它?看来你应该看看是的,书是要花钱的。学校也是如此。