Помогите с вводом пароля.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Проблема в том что надо чтобы считался только правильный пароль.
Если вводишь верный пароль и потом еще любой текст, то оно считает что пароль введен правильно.
Помогите исправить проблему.
Пароль должен быть строкой символов (типа char* или string — не важно), а не числом, как в данном случае, unsigned short.
В твоей программе оператор
cin>>chPassword
пытается получить из cin число и только число. Поэтому при вводе «11бла-бла-бла» оператор>>
хавает цифры до первого неподходящего символа и преобразует их к требуемому типу unsigned short. Остаток ввода «бла-бла-бла» остаётся в буфере для следующего оператора чтения из потока. Этот остаток ты прибиваешь в буфере ввода вызовомcin.clear();
.Проверяется элементарно:
Введи в качестве пароля 11qwerty и получишь «остаток ввода» qwerty. А 11 было преобразовано в число и успешно прошло проверку в качестве пароля.
Спасибо, разобрался.
Вот готовый код.