gpt4 book ai didi

c++ - 如何让用户只输入一个字符?

转载 作者:搜寻专家 更新时间:2023-10-31 00:37:14 24 4
gpt4 key购买 nike

所以我有一个基于文本的冒险游戏并且它运行顺利,但我的一个“测试版测试员”注意到他可以在第一个 cin 点中选择多个数字,并且它将在游戏的其余部分使用这些值。我可以手动阻止用户必须输入多少个字符吗?这是我的程序

#include <iostream>
#include <stdio.h>
#include <cstdio>
#include <cstdlib>

char Choice;
char my_name;

using namespace std;

int main()
{
printf("You come out of darkness.\n");
printf("Confused and tired, you walk to an abandoned house.\n");
printf("You walk to the door.\n");
printf("What do you do?\n");
printf("1. Walk Away.\n");
printf("2. Jump.\n");
printf("3. Open Door.\n");
printf(" \n");
cin >> Choice;
printf(" \n");

if(Choice == '1')
{
printf("The House seems too important to ignore.\n");
printf("What do you do?\n");
printf("1. Jump.\n");
printf("2. Open Door.\n");
printf(" \n");
cin >> Choice;
printf(" \n");

以此类推,你明白了它的要点

最佳答案

这在很大程度上取决于平台并且没有简单的包罗万象的解决方案,但一个可行的解决方案是使用 std::getline 一次读取一行并且忽略除第一行以外的所有内容如果输入了多个字符或投诉。

string line; // Create a string to hold user input
getline(cin,line); // Read a single line from standard input
while(line.size() != 1)
{
cout<<"Please enter one single character!"<<endl;
getline(cin, line); // let the user try again.
}
Choice = line[0]; // get the first and only character of the input.

因此,如果用户输入更多或更少(less 为空字符串),将提示用户输入单个字符。

关于c++ - 如何让用户只输入一个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20245276/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com