Я создаю систему входа в систему с помощью С++, но сталкиваюсь с небольшими проблемами при настройке функции пароля.
Я хочу замаскировать пароль, код выглядит следующим образом:
#include <conio.h>
for(int j=0;j<5;j++) {
pass2[j]=getch();
cout<<"*";
}
Это заставляет пользователей вводить фиксированную длину пароля. Итак, есть ли лучший способ замаскировать пароль, используя строку без ограничений?
Причина, по которой я предпочитаю использовать строковый тип, заключается в том, что его легче сравнивать (я думаю). Так как пароль требуется вводить дважды. И я могу просто проверить их по
password==password_2;
вместо того, чтобы проверять его по одному. (и я могу не знать size_of_password.)
for (int i; i < size_of_password; i++){
if (password[i]==password_2[i]){...}
}
Есть ли способ, которым я могу легко проверить ввод пользователя? Спасибо.
вы имеете в виду использование массива символов?
Это похоже на то, что вы пытаетесь выполнить: маскировка пароля в с++
По сути, просто проверьте, когда передан символ ввода, а затем сломайте. В противном случае продолжайте push_back
создавать строковый контейнер.
Именно то, что мне нужно. Спасибо. Но у меня все еще есть некоторые вопросы. Я вижу, что он использует «const char BACKSPACE = 8;//код ASCII для клавиши BACKSPACE». Вызывает ли это какие-либо проблемы на другом ПК, использующем юникод.
Не должно, так как 8 - это стандарт юникода для возврата
Вместо того, чтобы читать фиксированное количество символов, читайте до тех пор, пока пользователь не нажмет клавишу ввода.