Я нахожусь где-то между новичком и хорошо разбираюсь в С++, и мне удалось написать базовую программу входа в систему на С++, используя Dev C++, Windows 7. Эта программа могла принимать входные данные для имени пользователя и пароля и сравнивать их, чтобы увидеть, если они были равны. Если это так, он приветствовал бы пользователя и завершал программу, а если нет, то возвращался бы к началу (бесконечно).
Затем я просмотрел несколько руководств в сети, чтобы замаскировать пароль в C b> и попытался сделать это сам на С++.
С кодом, который я включил ниже, я не получаю никаких ошибок, но и не получаю желаемого результата. В конце концов, даже если я ввожу правильный «пароль», мне всегда говорят попробовать еще раз. Также программа маскирует все, включая клавиши «Enter» и «Backspace». Вот код:
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
using namespace std;
int main()
{
int i=0;string u;char parr[i],ch;
while (1)
{
system("cls");
cout<<"Enter username."<<endl;
cin>>u;
system("cls");
cout<<"Enter password."<<endl;
for (i=0;i<=8;i++)
{
ch=getch();
parr[i]=ch;
ch='*';
cout<<ch;
}
string p(parr);
if (u=="username" && p=="password")
{
system("cls");
cout<<"Welcome!";
break;
}
else
{
system("cls");
cout<<"Username and password entered does not match! Please try again.";
}
getch();
}
getch();
}
Кроме того, есть ли способ сделать пароль замаскированным только для символов и, тем не менее, для длины пароля, заданного пользователем в качестве ввода, то есть не только 8 символов слова «пароль», но если пользователь вводит " notapassword", то все символы должны быть замаскированы, а не только первые восемь из них.
<conio.h>
,getch()
,system("cls")
- person melpomene   schedule 12.06.2016getch
является частью проклятий.cls
может быть командой UNIX (у меня есть одна настроенная).conio,h
может быть любым заголовочным файлом, - person Ed Heal   schedule 12.06.2016parr[i]
- это массивchar
из 1 элемента, и вы заполняете его 8char
s.string (const char* s)
создает строку из строки c с нулевым завершением, и вы не инициализируетеparr
. - person perencia   schedule 12.06.2016