здесь я написал код для принятия пароля, введенного пользователем после того, как он ввел свое имя пользователя, я написал небольшой код, используя оператор do while, чтобы распечатать звезду каждый раз, когда пользователь вводит какой-либо символ, и цикл завершается, когда пользователь вводит '!'. но меня удивило, когда я увидел пароль, введенный пользователем, и длину строки введенного пароля, в моем случае длина СТРОКИ всегда равна 21, а вывод пароля представляет собой комбинацию пароля, введенного пользователь и имя пользователя......что происходит??????
#include<iostream.h>
#include<conio.h>
#include<string.h>
int main()
{
char username[15],password[15];
int i=0;
cout<<"\nEnter your USERNAME:";
cin>>username;
cout<<"\nenter your password:";
do
{
password[i]=getch();
if(password[i]=='!')break;
cout<<"*";
i++;
}while(i<15);
cout<<"\n\nthe password entered was"<<password<<"\nthe length of the password is" <<strlen(password);
getch();
return 0;
}
<unistd.h>
была функцияgetpass()
, но она не является потокобезопасной. Предположительно, часто задаваемые вопросы программистов Unix описывает, как читать без эха ( раздел 3.1). - person Kerrek SB   schedule 29.07.2011