c++中的命令提示符

command prompt in c++

本文关键字:命令提示符 c++      更新时间:2023-10-16

我在这里做错了什么?

#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++的新手,这应该绕过"命令提示符已被您的管理员在windows上禁用"

提取操作符(>>)在到达第一个空格时停止读取如果您的命令包含空格,则使用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*.

当第一个参数调用一个程序,第二个参数被传递给系统时,没有办法一个接一个地传递两个参数,但是你可以创建一个大命令,然后传递它。

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