我只需要快速帮助。以下是一些代码的细分:
char userLetter;
int userNumber;
cout << "Please enter a letter: ";
cin >> userLetter;
while(userLetter == 'A')
{
cout << "Please enter a number: ";
cin >> userNumber;
//do something in the loop here
cout << "Please enter a letter: ";
cin >> userLetter;
}
现在我基本上需要添加一些东西,如果他多次输入相同的数字,就会告诉用户他的输入无效。例如,假设用户输入字母A和数字2. while循环执行它需要做的任何事情然后再次要求用户输入一个字母。假设用户再次输入“A”。然后循环询问用户另一个号码,如果号码再次为2,程序应该告诉用户这是一个无效的条目。
任何帮助?
答案 0 :(得分:2)
您可以使用std::set
记住所有输入的号码,并查看每个后续号码是否已在该号码中。
std::set<int> numbers;
while(userLetter == 'A')
{
cout << "Please enter a number: ";
cin >> userNumber;
if ( numbers.find(userNumber) != numbers.begin() )
{
//prompt error here
continue;
}
else
{
numbers.insert(userNumber);
}
//do something in the loop here
cout << "Please enter a letter: ";
cin >> userLetter;
}
答案 1 :(得分:0)
将之前的号码存储在std::vector
中,并在读取后续号码后使用先前读取和存储的号码测试是否相等。
答案 2 :(得分:0)
您可以使用std::set
个std::pair
- s或某些std::map
来保持字母和数字之间的关联。
答案 3 :(得分:0)
您应该使用容器(可能是std :: set)来存储数字。您可以使用方法“insert”插入,并使用方法“find”测试数字是否在集合中。
答案 4 :(得分:0)
std::map<char, int> m;
std::map<char,int>::iterator it;
it=m.find(userLetter);
if(it!=m.end() && *it==userNumber)
{
std::cout << "it's an invalid entry" << std::endl;
continue;
}