• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zamiana tekstu w locie

Object Storage Arubacloud
+1 głos
406 wizyt
pytanie zadane 10 kwietnia 2015 w C i C++ przez M4tthew Gaduła (4,480 p.)
Hej potrzebuje napisać coś takiego co umożliwi mi zamiane tekstu na znaki dokładniej * tak jak jest hasło, wpisujecie i go nie widać ma ktoś jakiś pomysł jak to zrobić lub gotowy kod?

2 odpowiedzi

0 głosów
odpowiedź 10 kwietnia 2015 przez Przemek Gaduła (3,600 p.)
wybrane 10 kwietnia 2015 przez M4tthew
 
Najlepsza
Robisz to w aplikacji konsoli czy aplikacji okienkowej?
komentarz 10 kwietnia 2015 przez M4tthew Gaduła (4,480 p.)
robie to w konsoli
komentarz 10 kwietnia 2015 przez Przemek Gaduła (3,600 p.)
#include <iostream>
#include <conio.h>
#include <string>

int main()
{
    unsigned char znak;
    std::cout << "klawisz [ESC] wychodzi z programu." << std::endl;
    std::string tekst = "";

    do
    {

        znak = getch();
        if(znak == 13) //Enter
        {
            std::cout << "\n" << tekst << "\n";
            tekst = "";
        }
        else
        {
            tekst += znak;
            std::cout << "*";
        }

    } while( znak != 27 ); //ESC

    return( 0 );
}

 

komentarz 10 kwietnia 2015 przez M4tthew Gaduła (4,480 p.)
właśnie o to mi chodziło bardzo dziękuje ! :)
+2 głosów
odpowiedź 10 kwietnia 2015 przez Grabarz Bywalec (2,880 p.)
edycja 10 kwietnia 2015 przez Grabarz

Hej,

Możesz użyć biblioteki pdcurses dla windows lub ncurses dla gnu/linux. Biblioteka *curses, służy do nisko-poziomowego zarządania terminalem.

  1. Wyłącz tryb echo (funkcja noecho()) oraz buforowanie strumienia wejściowego (funkcja raw())
  2. W pętli, pobieraj znak za pomocą funkcji getch(), a po jego pobraniu wpisz znak '*' na wyjście. Z każdym kolejnym znakiem, dołączaj go do obiektu std::string za pomocą metody push_back(), a następnie porównaj go z hasłem i podejmij odpowiednie akcje (Wyjście z pętli, kontynuacja)
#include <ncurses.h>
#include <iostream>

int main()
{ initscr();
  noecho(); /* Wyłączenie wypisywania strumienia wejściowego na wyjście */
  cbreak(); /* Podobnie co raw(), tylko że pozwala na użycie skrótów klawiszowych (Ctrl+C) */
  std::string password;
  char symbol;
  while (true)
  { symbol = getch();
    printw("*");
    password.push_back(symbol);
    if (password == "zaq1@WSX")
     break; }
  std::cout << "\nZalogowano\n";
  endwin(); }

Podobne pytania

0 głosów
4 odpowiedzi 910 wizyt
pytanie zadane 6 lutego 2016 w C i C++ przez Dronojad Obywatel (1,980 p.)
0 głosów
2 odpowiedzi 5,957 wizyt
pytanie zadane 22 lipca 2017 w Systemy operacyjne, programy przez Quasch Nowicjusz (160 p.)
0 głosów
2 odpowiedzi 259 wizyt
pytanie zadane 30 stycznia 2017 w C i C++ przez czujek22 Dyskutant (7,670 p.)

92,579 zapytań

141,432 odpowiedzi

319,657 komentarzy

61,963 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...