c ++中的命令提示符

时间:2016-11-01 22:24:07

标签: c++ command-prompt

伙计们我在这里做错了什么?

#include <iostream>
#include <string>

using namespace std;

int main()
{
    while (true){
        std::string cmd;
        cin >> cmd;

        const char* com = cmd.c_str();

        cout << com << endl;
       // cout << sizeof(com) << endl;

        system(com);
    }
    return 0;
}

每次我运行它都可以正常工作,但是当你键入类似cd ../的东西时,它会分隔单词并将它们作为两个不同的命令运行,所以先cd,然后../它会给我一个错误。关于我做错了什么的任何想法? 无论如何我也是C ++的新手,这应该绕过&#34;你的管理员在Windows上禁用了命令提示符&#34;

1 个答案:

答案 0 :(得分:1)

如果命令由空格组成,则提取运算符(&gt;&gt;)在到达第一个空格时停止读取,然后使用std :: getline:

std::string sCommand;
std::cout << "Enter eommand: ";
std::getline(std::cin, sCommand); // eg enter: color 1f
system(sCommand.c_str()); // c_str(): converts from class string to const char*.

当第一个参数调用一个程序而第二个参数传递给它时,没有办法将两个参数一个接一个地传递给系统,但你可以使用big命令然后传递它。

system("diskpart"); // invoking diskpart
system("list vol"); // here list vol is not passed to diskpart but only to cmd  

system("notepad.exe C:/desktop/mylog.txt"); // ok