如何将输入作为包含空格的字符串?

时间:2016-02-21 22:14:32

标签: c++

我正在尝试创建一个执行输入命令的程序。我试过了:

const char* command = "echo Hello, World!";
system(command);

这很好用。但我想这样做,用户必须输入命令。这就是问题所在。我试过了:

string command;
cin >> command;
system(command.c_str());

这也可以正常工作,但仅适用于像cls这样的单字命令。但是如果我尝试输入像color a这样的命令,程序会将我的输入数据保存为两个单独的命令并执行color,然后它会尝试执行a,显然输出为:{ {1}}

那么如何将输入数据保存为包含空格的单个 const char?

3 个答案:

答案 0 :(得分:2)

您遇到的问题是cin将空白处的输入标记为。如果要获得包括非行尾空格的整行输入,则应使用std::getline()

答案 1 :(得分:1)

我相信您正在寻找std::getline() - 这将处理所有输入,直到指定的分隔符,默认为\n

std::string line;
if (std::getline(std::cin, line)) {
    ...
}

答案 2 :(得分:0)

std::getline(std::cin, command);