在C ++中按下ENTER后如何继续执行程序?

时间:2017-04-20 07:43:37

标签: c++

我有一个程序,我允许用户输入命令和坐标。示例GO 1 2。我想在用户只输入一个坐标而不指定另一个坐标时抛出异常。示例GO 1,但程序等待我输入下一个参数。我不希望这样,我希望它只允许用户在一行中输入所有内容。

这是我的代码:

cout << "Enter command: ";
string command;
int x, y;
cin >> command >> newX >> newY;
if(LegalCommand(command)){
   if(!cin){
       cin.clear();
       cin.ignore(1000, '\n');
       cout << "Command not valid!" << endl;
   }
}

1 个答案:

答案 0 :(得分:3)

读入一个字符串并将其流式传输:

string line;
getline(cin, line);
istringstream in(line);
in >> kom >> newX >> newY;