Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Как реализовать замену


Автор: GOBLIN_TT 26.12.2007, 14:16
Всем привет, народ подскажите как сделать замену в С++.
Например если ползователь вводит пароль, у него на экране отображается то, что он вёл, а как можно сделать чтобы у него вместо этого отображалась например (****) - его пароль.

Помогите плиз.

Автор: bsa 26.12.2007, 14:39
GOBLIN_TT, стандартными средствами никак.
Тебе надо указать платформу, чтобы можно было предложить подходящие для нее средства.

Автор: GOBLIN_TT 26.12.2007, 20:52
Visual C++ 6.0

Автор: Annihilator 26.12.2007, 20:55
А разве нельзя чтобы по нажатиb пользователем клавиши, выводилась * 
допустим
cout << '*';

Автор: ProgMaster 26.12.2007, 21:01
Не до конца вообще понял о чем ты. Ну если ты хочешь, чтобы в твоем боксе отображались здевздочки, то смотри перечисления стилей окон (едитов в твоем случае). MSDN.

Код

А разве нельзя чтобы по нажатиb пользователем клавиши, выводилась * 
допустим
cout << '*'; 

И этот вариант прокатит. Но это для консольного приложения. В вин32 как-то неразумно это юзать ;)


Автор: archimed7592 26.12.2007, 21:34
Цитата(ProgMaster @  26.12.2007,  21:01 Найти цитируемый пост)
В вин32 как-то неразумно это юзать ;)

Уважаемый, вы действительно считаете, что в вин32 консольные приложения больше не актуальны? 0_о

Автор: ProgMaster 26.12.2007, 22:29
Цитата(archimed7592 @ 26.12.2007,  21:34)
Цитата(ProgMaster @  26.12.2007,  21:01 Найти цитируемый пост)
В вин32 как-то неразумно это юзать ;)

Уважаемый, вы действительно считаете, что в вин32 консольные приложения больше не актуальны? 0_о

Я так не считаю. Да и не это имел ввиду. Я имел ввиду то, что глупо в вин32 прогах прежде чем вывести символ, запомнить его и вставить звездочку. Куда проще SetWindowStyle и поставить WS_PASSWORD (эт все приблизительное, точных значений/ф-ий не помню, шустрим MSDN).

Автор: archimed7592 26.12.2007, 23:01
Я рад, что мы пришли к взаимопониманию smile.

Автор: papam 28.12.2007, 00:01
Функция char *strset(char *s, int ch); - заменяет ВСЕ символы в строке s на символ ch. 

Код

char str[30] = "ABCDE";
cout << strset(str, 'x');   // на экране будет xxxxx

Автор: archimed7592 28.12.2007, 12:25

M
archimed7592
Тема разделена в Отличия терминов "win32", "консоль" и VCL

Автор: bsa 28.12.2007, 13:22
Цитата(papam @ 28.12.2007,  00:01)
Функция char *strset(char *s, int ch); - заменяет ВСЕ символы в строке s на символ ch. 

Код

char str[30] = "ABCDE";
cout << strset(str, 'x');   // на экране будет xxxxx

А теперь тоже самое, но строка вводится с клавиатуры, а вводимые символы отображаются как '*'.

Автор: DragoonFighter 28.12.2007, 15:00
Стринг в чар и с помощью getline() вводим строку с клавиатуры.

Автор: bsa 28.12.2007, 15:02
DragoonFighter, по условию задачи на экране вводимая строка не должна отображаться. Попробуй, сделай это стандартными средствами.

Автор: DragoonFighter 28.12.2007, 15:09
bsa, ах да, об этом не подумал....

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)