[ skajfes @ 05.06.2005. 13:12 ] @
Trebam učitati password sa tipkovnice, ali kad korisnik upiše neki znak, trebam ispisati zvijezdicu umjesto učitanog znaka, znači standardni upis passworda.

E sad, u windowsima sam radio učitavanje pomoću getch() koja učitava znak i ne ispisuje ga na ekranu, a ja sam samo dodatno ispisao zvijezdicu, i sve je radilo bez problema. Ali, isti kod u linuxima ne radi. Koliko sam tražio po libraryima nisam našao ni jednu funkciju koja bi zadovoljavala.

Meni se čini da je problem u tome što valjda operativni sustav ne prosljedi stream do programa sve dok se ne stisne enter. Tako da tek nakon upisanog passworda, koji se na ekranu vidi, bude ispisan potreban broj zvijezdica.

Kako bi ja mogao napravit da do programa dolaze znakovi čim ih korisnik otipka na tipkovnici, prije nego stisne enter, i tako da se pri tome isti ne vide na ekranu?
[ rumpl @ 05.06.2005. 13:36 ] @
Nasao sam ovaj kod na nekom od foruma...

Code:

#include <stdio.h> 
#include <termios.h> 
#include <unistd.h> 

int mygetch(void) 
{
  struct termios oldt, newt;
  int ch;
  
  tcgetattr( STDIN_FILENO, &oldt );
  newt = oldt;
  newt.c_lflag &= ~( ICANON | ECHO );
  tcsetattr( STDIN_FILENO, TCSANOW, &newt );
  ch = getchar();
  tcsetattr( STDIN_FILENO, TCSANOW, &oldt );
  
  return ch;
}
[ anon315 @ 05.06.2005. 13:38 ] @
Uze mi rec iz usta, grrr :))

http://linuxforu.com/yabbse/in...5;action=display;threadid=1055
[ skajfes @ 05.06.2005. 17:48 ] @
E hvala vam, idem baš sad to isprobat.
[ anon315 @ 05.06.2005. 19:00 ] @
Aj ako ti uspe, baci ovde ceo kod ...
[ skajfes @ 08.06.2005. 20:10 ] @
Evo koda, premda mi nije jasno zašto ti treba, kad je sve u biti jasno, znaš kako se koristi normalni getch(), ne?

Kod je self-explanatory....