C++ 需要在Ubuntu(C+;+;)中使用用户输入运行文件

C++ 需要在Ubuntu(C+;+;)中使用用户输入运行文件,c++,ubuntu,C++,Ubuntu,很难给那个人一个头衔。无论如何,我的问题是我在Ubuntu Eclipse上构建一个基于C++的命令行(只是为了实践),虽然我已经得到程序使用“代码>运行< /COD>打开文件,但它要求文件名是特定的,因为它使用了代码>如果(命令=“文件名”)< /COD>来确定程序。我试图使用命令字符串创建正确的路径。我使用的确切代码如下所示: path = "/home/<username>/Desktop/C++Files/" + command + "/Debug/" + commm

很难给那个人一个头衔。无论如何,我的问题是我在Ubuntu Eclipse上构建一个基于C++的命令行(只是为了实践),虽然我已经得到程序使用“代码>运行< /COD>打开文件,但它要求文件名是特定的,因为它使用了代码>如果(命令=“文件名”)< /COD>来确定程序。我试图使用命令字符串创建正确的路径。我使用的确切代码如下所示:

    path = "/home/<username>/Desktop/C++Files/" + command + "/Debug/" + commmand;
    system(path);
我让它看起来像Windows命令处理器。到目前为止,它只有几个命令。我本来打算做什么来让file open命令工作的基本想法就在这里。我最初只是简单地使用它:

if(command == "Run"){
    cin >> command
    if(command == "<the filename I was testing with>"){
        system("<filename>")
    }
}
希望这能把事情弄清楚,同时也为我所需要的
系统(location.c_str())
的混乱感到抱歉。它工作得非常好。感谢@RetiredNinja为我提供了所需的建议,感谢@guysherman为我解释了发生了什么。这正是我现在想要的


另外,在一个不相关的注释中,我意识到我发布的路径是/dektop/而不是/desktop/。不是很重要,只是觉得很有趣我没听清楚。

什么类型的路径?看起来您使用的是std::string?system()接受常量char*。我不太明白使用const char是什么意思。如果它指的是一个常量字符,我通常可以使用system(“”)。很抱歉,我只是C++的新手,你应该展示你的代码,让我们能够理解你在做什么。无法看到
命令
路径
的声明几乎意味着任何人都只能猜测。
系统(location.c_str())
。当然,您在发布的代码中出现了一些编译警告或错误。您试图运行的外部可执行文件的路径是否确实存在?这与您的问题无关,但我注意到您使用了
goto
。这被认为是不好的做法;您应该学习使用循环(
for
while
循环)。
if(command == "Run"){
    cin >> command
    if(command == "<the filename I was testing with>"){
        system("<filename>")
    }
}
location = "/home/jueleo/Dektop/C++Files/" + command + "/Debug/" + command;
system((location));