Существует ли аналог scanf'а для ввода строки, которая не должна отображаться в консоли? Например, чтобы вместо символов были звездочки (как в виндоуз), или символы вообще не отображались (как в runas).
В чем проблема сделать такое самому? Ожидаешь ввод getch - он работает без эха. Получил символ, отобразил звездочку или ничего не отобразил. И так столько, сколько нужно раз (пока не нажат Enter например). Это вот самый простейший вариант.
ormoulu Может так примерно ... Код (Text): INPUT_RECORD buff[128]; while (1) { ReadConsoleInput(hStdin,buff,128,&num_of_Read); for(i=0;i<num_of_Read;i++) { switch(buff[i].EventType) { case KEY_EVENT: { Ascii_Ch = buff[i].Event.KeyEvent.uChar.AsciiChar; // Анализируешь и запоминаешь // Перемещаешь курсор // Ставишь "#" } default: break; } }
Код (Text): #include <Windows.h> #include <stdio.h> #include <tchar.h> INT _tmain(INT iCnt, PTSTR pszCmd[]) { TCHAR szPwd[128] = _T(""); _tprintf_s(_T("Password: ")); for(WORD wI = 0; wI < 128 && !GetAsyncKeyState(VK_RETURN); wI++) { szPwd[wI] = _getwch(); _tprintf_s(_T("*")); } _tprintf_s(_T("\nYour password is %s\n"), szPwd); _tsystem(_T("pause")); return 0; }