C ++将变量传递给System()WINAPI(无MFC)

时间:2012-05-28 08:36:25

标签: c++ variables formatting system

这可能是一个明显的答案,但我对C ++的经验不多。我试图将文件的位置传递给系统,以便它运行它。

我使用的代码:

        char test[20] = "C:\\";

        system("PAUSE & cd "+test[]+" & ping.text & PAUSE");

哪个不行。这就是我在java中做的事情。我如何将字符数组测试纳入该系统字符串?任何帮助甚至是可能解决方案的链接都将是一个很大的帮助。

2 个答案:

答案 0 :(得分:1)

原始字符串不能与+连接。请改用std::string

std::string test = "C:\\";
std::string command = "PAUSE & cd " + test + " & ping.text & PAUSE";
system(command.c_str());

请注意,在将std::string传递给system时,您需要调用c_str(),因为system()需要原始字符串。

答案 1 :(得分:0)

我已设法使用以下代码解决此问题:

        char testing[500];  // create char array
        strcpy (testing, "PAUSE & cd "); // copy the string into the char array
        strcat (testing, test); 
        strcat (testing, " & ping.text & PAUSE");
        system(testing);

由于我对C ++相对缺乏经验,我不确定这是否是“最好”的方法,但它让我的代码正常运行而没有问题。如果有人有任何信息要添加到此解决方案,我将更新此答案。