С Новым годом! Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/50: Рейтинг темы: голосов - 50, средняя оценка - 4.52
0 / 0 / 0
Регистрация: 09.10.2011
Сообщений: 26

Замена символов при вводе пароля

29.02.2012, 00:22. Показов 9539. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Опять же я с глупыми вопросами как можно сделать или может есть кака я то функция
что при вводе пароля эти символы оттображаются как *
если не трудно пример вот на этом коде
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <stdio.h>
#include <locale.h>
#include <string.h>
#include <conio.h>
void main()
{
         setlocale(LC_ALL, "Russian");
         char login[256], password[256];
         char ch_login[256], ch_password[256];
         int found=0,i=0;
         printf("Введите логин: \n");
         scanf("%s",login);
         printf("Введите пароль: \n");
         scanf("%s",password);
         FILE * fp = fopen("users.txt", "r");
         while(!feof(fp))
        {
                fscanf(fp,"%s", ch_login);
                fscanf(fp,"%s", ch_password);
                strrev(ch_password);
                if(strcmp(login,ch_login)==0
                   && strcmp(password,ch_password)==0)
                {
                        found++;
                        break;
                }
                i++;
        }
        if(found!=0)
                printf("Вы вошли как: %s",ch_login);
        else
                printf("Вы ввели неверный логин или пароль");
        getch();
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.02.2012, 00:22
Ответы с готовыми решениями:

Скрыть символы в консоли при вводе пароля
Мне нужно ввести пароль таким образом(все через консоль): если пользователь нажимаешь какую-нибудь клавишу, то вместо нее выводится *,...

Не работает считывание символов при вводе
#include &lt;stdio.h&gt; int main () { long nc; nc = 0; while (getchar() != EOF) ++nc; printf(&quot;%ld\n&quot;, nc); } Должно...

Замена символов при вводе
Здравствуйте! копирую цифры из 1С в Excel, а они с пробелами как удалять пробел при изменении ячейки? пытаюсь написать такой макрос...

8
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
29.02.2012, 00:56
Ничего хитрее что-то не выдумывается
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <conio.h>
using namespace std;
 
int main()
{
    char ch='s';
    string str;
    while(ch!= код_символа_для_выхода)
    {
        ch=getch();
        str+=ch;
        system("cls");
        for(int i=0;i<str.length();i++)
         cout<<'*';
    }
}
Добавлено через 1 минуту
В моём методе только же будет каждый раз очистка экрана всего, тоесть пока будет ввода пароля экран каждый раз будет чиститься, также getch() пофиг на то что это за клавиша, будь то символ a или кнопка F12 так что эти варианты нужно проработать отбрасывая их или ещё как (по желанию уже).
0
 Аватар для kazak
3601 / 2742 / 355
Регистрация: 11.03.2009
Сообщений: 6,300
29.02.2012, 09:03
Со звездочкой не скажу, а вот без звездочки в conio для считывания пароля есть функция getpass, которая просто не выводит на экран набираемый текст.
0
0 / 0 / 0
Регистрация: 09.10.2011
Сообщений: 26
29.02.2012, 11:48  [ТС]
а нужно именно со звездочками
0
62 / 61 / 6
Регистрация: 02.09.2008
Сообщений: 181
29.02.2012, 17:10
Может, сделать вот так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <windows.h>
#include <iostream>
#include <conio.h>
using namespace std;
 
int main()
{
    HANDLE hStdout, hStdin;
    CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
    WORD wOldColorAttrs;
 
    // Получим дескрипторы для STDIN и STDOUT.
    hStdin = GetStdHandle(STD_INPUT_HANDLE);
    hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
    if (hStdin == INVALID_HANDLE_VALUE || hStdout == INVALID_HANDLE_VALUE)
        return 0;
 
    // Сохраним текущий цвет текста.
    GetConsoleScreenBufferInfo(hStdout, &csbiInfo);  
    wOldColorAttrs = csbiInfo.wAttributes;  
    char ch;
    char *note = "ENTER PASSWORD >";
    string str;
    COORD p1={30,5}, p2={p1.X + strlen(note),7 };
    SetConsoleTextAttribute(hStdout, wOldColorAttrs);
    SetConsoleCursorPosition(hStdout, p1);
    cout<<note;
    do
    {            
        // Установим атрибуты текста которые пишут черный текст по черному фону.
        SetConsoleTextAttribute(hStdout, 0x0000);
        ch=_getch();
        if(ch==13) //если нажали клавишу ENTER 
            break;    
        // Установим атрибуты текста которые пишут красный текст по черному фону.
        SetConsoleTextAttribute(hStdout, FOREGROUND_RED|FOREGROUND_INTENSITY);
        cout<<'*';
        str+=ch;
    }while(ch!= 23);
 
    SetConsoleTextAttribute(hStdout, wOldColorAttrs);
    SetConsoleCursorPosition(hStdout, p2);
    for(unsigned int i=0; i<str.length();i++)
        cout<<str[i];
    cout<<endl;
    
}



Добавлено через 9 минут
C++
1
while(ch!= 23);
что-то это не работает :-)
Но принцип я думаю понятен.
0
19 / 19 / 13
Регистрация: 22.11.2011
Сообщений: 101
29.02.2012, 21:16
ENERGYxdre, не знаю сделал ли ты чтобы вместо символов * выводилась или нет, но надо так делать: вводишь динамический массив, присваиваешь ему getch() и пишешь printf("*") Т.е. у меня вот как:
C
1
2
3
4
5
6
char* pass=(char*)malloc(sizeof(char)*255);
 
    for(int i=0;i<254;i++)
    {
    pass[i]=_getch();
    printf("*");
0
0 / 0 / 0
Регистрация: 09.10.2011
Сообщений: 26
01.03.2012, 01:50  [ТС]
Цитата Сообщение от Evgen2sat Посмотреть сообщение
ENERGYxdre, не знаю сделал ли ты чтобы вместо символов * выводилась или нет, но надо так делать: вводишь динамический массив, присваиваешь ему getch() и пишешь printf("*") Т.е. у меня вот как:
C
1
2
3
4
5
6
char* pass=(char*)malloc(sizeof(char)*255);
 
    for(int i=0;i<254;i++)
    {
    pass[i]=_getch();
    printf("*");


for(int i=0;i<254;i++)


это получается надо ввести 254 символа, вот что туда подставить
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
01.03.2012, 02:19
ENERGYxdre, лично мне по душе вот такой простецкий вариант
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <conio.h>
 
int main()
{
    long n         = 0;
    char passw[32] = {0};
    while((passw[n] = getch()) != '\r' && (n = n + 1))
        printf("%c",'*');
    printf("\nYour password : %s\n",passw);
    printf("Press anykey to continue\n");
    getch();
    return 0;
}
Миниатюры
Замена символов при вводе пароля  
1
19 / 19 / 13
Регистрация: 22.11.2011
Сообщений: 101
01.03.2012, 11:10
ENERGYxdre, главное вот эта строка:
C
1
2
pass[i]=_getch();
                                                             printf("*");
Для ввода пароля ты ведь используешь массив, и вот в цикле своему массиву присвой _getch(), это задержка нажатий, т.е. ты нажимаешь клавишу, она вводится но на консоле ничего не показывается.

for(int i=0;i<254;i++)


это получается надо ввести 254 символа, вот что туда подставить
я просто объявил массив из 255 символов, он служит для ввода пароля
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.03.2012, 11:10
Помогаю со студенческими работами здесь

Замена символов вводимого пароля звездочками
Вот исходный код программы.Мне нужно чтобы когда пользователь вводил пароль эта строка визуально заменялась звездочками как при...

Отображение пароля звездочками при вводе
string password = &quot;НИКИТА1257&quot;, input = string.Empty; Console.Write(&quot;Введите пароль для работы с файлами Windows: &quot;); ...

При вводе пароля заменить символы на ****
Такой вопрос, у меня есть форма в которой есть textBox, для ввода пароля. Как сделать чтобы при вводе заменить символы на ****

VBulletin НЕ пускает при вводе логина и пароля
Такая ситуация: есть основной домен и сабдомен, на основном сайт и в нем в папке forum находится сам форум. Так вот: если логинится...

Num Lock при вводе пароля
Я использую цифровые пароли, так как их удобнее набирать - с боковой клавиатуры. Но при входе в Linux, когда появляется окно выбора...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru