我正在尝试创建一个执行输入命令的程序。我试过了:
const char* command = "echo Hello, World!";
system(command);
这很好用。但我想这样做,用户必须输入命令。这就是问题所在。我试过了:
string command;
cin >> command;
system(command.c_str());
这也可以正常工作,但仅适用于像cls
这样的单字命令。但是如果我尝试输入像color a
这样的命令,程序会将我的输入数据保存为两个单独的命令并执行color
,然后它会尝试执行a
,显然输出为:{ {1}}
那么如何将输入数据保存为包含空格的单个 const char?
答案 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);