首页 > 解决方案 > cin.ignore() 如果有字符

问题描述

我在 2 个终端中有 2 个玩家。当轮到玩家1时,他输入一个字符,没关系。但是当轮到玩家2时,如果玩家1在轮到他之前输入一个字符,在这种情况下,当轮到他时自动输入字符。如果我使用 cin.ignore(),如果玩家 1 不做任何思考并且不输入 char 当轮到他时,他必须输入 char 2 次(1 次忽略,1 次输入 cin),这很糟糕。如果之前终端中有一个 char(或 2 个或更多 char),我想编写一个忽略 char 的代码。如果没有字符,请不要忽略。我上传了一张图片,显示玩家 1 自动输入的字符,因为他在轮到他之前输入了“a”。(此图中存在一些代码) 在此处输入图像描述

标签: c++cin

解决方案


阅读完整的输入行。只取第一个字符,忽略其余字符。

就像是:

std::string input;
std::getline( std::cin, input );
char move = input[0];

这段代码显然不做错误检查,所以,你可能想把它添加进去。


推荐阅读