C++ 有没有办法在一段时间内阻止cin输入,然后再次允许输入?

C++ 有没有办法在一段时间内阻止cin输入,然后再次允许输入?,c++,iostream,cin,C++,Iostream,Cin,我正在编写一个基于文本的游戏,在这个游戏中,通过在每个角色之间休眠几毫秒来打印发送到终端的消息,然后从玩家那里获取输入,如下所示: #include <iostream> #include <unistd.h> #include <climits> int main() { std::string line; std::string message = "LotsAndLotsAndLotsAndLotsAndLotsAndLotsAndLot

我正在编写一个基于文本的游戏,在这个游戏中,通过在每个角色之间休眠几毫秒来打印发送到终端的消息,然后从玩家那里获取输入,如下所示:

#include <iostream>
#include <unistd.h>
#include <climits>
int main() {
    std::string line;
    std::string message = "LotsAndLotsAndLotsAndLotsAndLotsAndLotsAndLotsAndLotsAndLotsAndLotsAndLotsAndLotsAndLotsAndLotsAndLotsAndLotsOfText\n";
    for(char c : message) {
        usleep(1000 * 40);
        std::cout << c << std::flush;
    }

    std::getline(std::cin, line);
    std::cout << line << "\n";

    return 0;
}
#包括
#包括
#包括
int main(){
std::字符串行;
std::string message=“lotsandlotsandlotsandlotsandlotsandlotsandlotsandlotsandlotsandlotsandlotsandlotsandlotsandlotsandlotsandlotsandlotsoftext\n”;
for(字符c:消息){
usleep(1000*40);

std::cout这在一定程度上是一个推测性的答案,因为我没有实际测试过。可能会生成一个循环,阻止代码的其他部分执行,直到循环完成,其中该循环运行直到您完成消息。该循环将使用一个参数/标志,例如eof或(我忘了这是否真的可能)类似于行尾消息。同时,您可以将用于获取输入的代码作为单独方法的一部分,以便仅当您希望调用该方法时才调用该方法。

cin就是这样。您需要使用特定于平台的输入API来阻止输入或被输入中断。也许您可以定义在打印消息时,应通过从缓冲区中删除信息来忽略您读取的所有内容。如果您需要高级终端操作(阻止用户输入,在任意位置输出…),这可能是一个不错的选择。消息是否从单独的文件读取?这可能是有用的信息。