我有一个程序,我允许用户输入命令和坐标。示例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;
}
}
答案 0 :(得分:3)
读入一个字符串并将其流式传输:
string line;
getline(cin, line);
istringstream in(line);
in >> kom >> newX >> newY;