ďťż

Ładny brzuch

Od niedawna uczę się c++ i mam pytanie.

W jaki sposób zrobić coś takiego, jak jest w telnecie unixa/linuxa, przy podawaniu hasła: wpisujemy ciąg znaków, po naciśnięciu klawisza enter zmienna otrzymuje wartość, a mim to, w konsoli nie widać co wpisaliśmy?

wygląda to mniej, więcej w ten sposób:

telnet> open nazwastrony.pl 23
Connecting to nazwastrony.pl:23 ...

Welcome to the Once and Future M-Net
FreeBSD 4.6 (nazwastrony.pl) (ttyp0)

login: root
Password:
Last login: Mon Jul 17 09:08:13 from 83.23.154.202
Copyright © 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California. All rights reserved.

FreeBSD 4.6.2-RELEASE-p27 (MNET) #9: Wed Apr 19 10:01:10 EDT 2006

Welcome to FreeBSD!

$

Z góry dziękuje.



Zczytuj znaki i oczekuj entera (#13).


Zczytuj znaki i oczekuj entera (#13). Można jaśniej?

Hmm.. Może po prostu dodawaj kod ASCII wprowadzonych znaków do jakiejś zmiennej i jeśli nastąpi wciśnięcie Entera (kod ASCII: 13), wykonaj porównanie haseł. A co do tych "niewidocznych" ciągów... może ustaw kolor czcionki na taki jaki jest ustawiony kolor tła konsoli? :D



Czy są na tym forum osoby kompetentne...?

Jeden użytkownik napisał coś, czego sam nie potrafi wyjaśnić, a drugi mówi mi o formatowaniu textu w aplikacjach konsolowych :lol:


Czy są na tym forum osoby kompetentne...?

Jeden użytkownik napisał coś, czego sam nie potrafi wyjaśnić, a drugi mówi mi o formatowaniu textu w aplikacjach konsolowych :lol:


Otrzymales poprawne odpowiedzi, co do pierwszego to co tam wyjasniac?:| nie da sie tego prosciej napisac. A co do drugiego - tez sposob :).

void getPass( char pass[] , const int size ) { char znak; for( int pos = 0; pos < size-1; pos ++ ) { znak = _getch(); if( znak != 13 ) { pass[pos] = znak; } else { pass[pos] = 0; break; } } }

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •