c++ - C++中按ENTER键后如何继续执行程序?

标签 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;
   }
}

最佳答案

读入字符串并流式传输:

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

关于c++ - C++中按ENTER键后如何继续执行程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43513205/

相关文章:

c++ - Kruskal 的算法实现

c++ - 保证元素位置固定的容器

java - 未使用 QAndroidJniObject 调用的三个函数之一

c++ - QStandardItemModel:添加行的任何有效方法?

c++ - 了解 Caffe 中的输入维度、SoftmaxWithLoss 和标签

c++ - Valgrind:来自复制构造函数的大小为 8 的无效写入

c++ - 指针未释放-指针问题?

C++如何读取流直到行尾

c++ - 如何编写此西北方法的代码

c++ - 在 C++ 中使用 "super"