Chcel by som sa spytat akym sposobom je mozne v linuxe skryt znaky, ktore vkladam do konzoly. Napriklad ked spustim program "su" tak mi vypise prompt
#########
Password:
#########a kazdy dalsi znak az po ENTER je neviditelny. Neviem ci je to zalezitost programovacieho jazyka (C++) alebo nejakeho nastavenia v shelli. Dakujem za odpoved.
je to zalezitost programu alebo terminalu
...
cout<<"Vlozte prosim heslo: ";
char pole[255];
cin.getline(pole, 255); //tu sa vklada heslo, ale vlozene znaky su VIDITELNE
cout<<"\nHeslo vlozene";
Vystup:
Vlozte prosim heslo: mojeheslo
Heslo vlozene
Pozadovany vystup:
Vlozte prosim heslo:
Heslo vlozene
mozno by si sa mal chvilu venovat aspon standardnej kniznici, ked uz chces robit v C++ ale ignorovat C
Dakujem za pomoc a zatvaram tetnto thread.
Skusal som to cin.getch() v tvare
cin.getch(znak)
dalej v tvarezn=cin.getch()
a takisto s predponou "std::" pod Ubuntu linuxom 7.10 gutsy s kompilatorom g++ ale vypisalo mi chybunevidit.cc:6: error: ‘struct std::istream’ has no member named ‘getch’
Vlozene kniznice boli IOSTREAM, STDIO.Hstty echo
#include <iostream>
#include <unistd.h>
int main()
{
char * z=new char;
z=getpass("Vloz heslo");
std::cout<<"Heslo je: "<<z;
return 0;
}
Pre C mame funkciu getch()
Pre C++ mame funkciu getpass(), ktorá je deprecated
Takže pre C++ neexistuje nič v súhlade so štandardom pre prebratie hesla? Platforma je linux x86
nie si nejaky vztahovacny? bolo v dobe v7 AT&T UNIX vobec C++?
prepac, ale neviem co si myslel tou vztahovacnostou..ja som len sumarizoval ako stojime s odpovedou na moju otazku. Cize getpass() je len nejake volanie operacneho systemu *nix, ktore nema nic spolocne s jazykom C/C++? Takze mozem topic uzavriet s tym ze najlepsie je poucit tuto funkciu (napriek tomu ze je deprecated)?