Я пытаюсь выяснить, как заблокировать один и тот же ввод дважды или более пользователем. Например, программа требует, чтобы пользователь ввел 3 входа, а не одни и те же. Но пока моя программа все еще выбирает тот же вход. Если пользователь вводит B2
3 раза, он выбирает его 3 раза. Результатом будет You have chosen these lots: B2 B2 B2
, чего не должно быть.
мой ввод - массив кстати. code[3]
.
Я хочу, чтобы он мог прочитать тот же ввод ранее и сказать, что он уже был выбран, выберите другой в качестве ввода.
Я предпочитаю использовать strcmp
.
#include <iostream>
#include <iomanip>
#include <string.h>
#include <fstream>
#include <conio.h>
char code[3][10];
for(int a=0; a<3; a++)
{
do
{
cout << "Please enter the lot you are interested in (A1-A7 / B1-B7): ";
cin >> ws;
cin.getline(code[a], 10);
if((strcmp(code[a], "A4") == 0) || (strcmp(code[a], "A6") == 0) || (strcmp(code[a], "B1") == 0)))
{
cout << "ERROR: Sorry! The house you chose has already been booked! \n\n"; // this are for booked lots already from the system
}
else if((strcmp(code[a], "A1") == 0) || (strcmp(code[a], "A2") == 0) || (strcmp(code[a], "A3") == 0) ....
{
cout << "SUCCESS: You have chosen the LOT " << code[a] << endl << endl;
}
else
{
cout << "ERROR: Sorry! The lot you entered is unavailable!" << endl << endl;
// i added strcpy(code[a], "A4"); to trick the system, and it works out.
}
}while((strcmp(code[a], "A4") == 0) || (strcmp(code[a], "A6") == 0) || (strcmp(code[a], "B1") == 0));
}
std::set<std::string>
. Пока размер набора меньшеn
, прочтите другой ответ. Пока в наборе есть ответ, не принимайте его. - person Biffen   schedule 03.06.2018code
. Вы добавилиcode[3]
в текст, но его проще поместить в код. Этоstring code[3]
? Я пытаюсь угадать; лучше не позволяйте людям угадывать и публикуйте свой полный код. В том числе и#include <whatever>
, и все. См. минимальный воспроизводимый пример. - person anatolyg   schedule 03.06.2018std::string
, чем символьные массивы. Например, вы можете использоватьoperator==
для сравнения сstd::string
. - person Thomas Matthews   schedule 03.06.2018