Поскольку ваша задача довольно проста, если вам повезет, ваша система будет иметь функцию getpass()
:
char * getpass(const char *prompt);
Если вам не нужна подсказка, просто сделайте:
char *s = getpass("");
if (s != NULL)
printf("Your password was %s!\n", s);
getpass()
, как и все функции C, связанные с эхом и буферизацией, нестандартны, но присутствуют в Mac OS X, возможно, Linux, и перечислены в библиотеке GNU C, поэтому, вероятно, присутствует в любой системе, использующей glibc.
Стандарты ANSI и ISO, как указывалось ранее, не определяют стандартный способ чтения ввода без эха или чтения небуферизованного ввода (т. Е. По символу за раз).