Forumi
Home Pravila i pomoć Članovi Kalendar Današnji postovi


Povratak   PC Ekspert Forum > Računala > Software > Web dizajn, programiranje i ostalo
Ime
Lozinka

Odgovori
 
Uređivanje
Staro 10.02.2009., 21:41   #1
svebee
/
 
Datum registracije: Oct 2006
Lokacija: /
Postovi: 2,053
[C++] Maskiranje passworda

Radim program u C++ i trebao bih malu pomoć. Radi se o tome da računalo čeka input korisika (radi se o riječi (samo slova su u igri tj. nema brojeva)) koji može biti koliko god dugačak (npr. 8 slova).

Dok on utipkava tu riječ ona se maskira - tj. umjesto riječi od 8 slova dobijemo 8 znakova "*" -> ********. Nakon toga računalo provjerava/analizira svaki znak posebno u toj riječi koja je unešena te ih unese u neke varijable (?).

Nakon toga korisnik unese neki znak (npr. b) i računalo testira je li taj znak sadržan u riječi unešenoj prije (tj. je li taj unešen znak jedak bilo kojoj varijabli ove gore riječi (?)). Ako je radi nešto, ako nije radi nešto drugo.

Evo kako bi to nekako trebalo izgledati.

Code:
Unesi riječ: ********* (piše pcekspert)
Unesi slovo: z
    Tog slova nema.
Unesi slovo: p
    Pogodio si slovo.
Kako to riješiti? Tražio sam netom i ima dosta tih "password masking" ali sve je valjda pisano za C ili sl. jer većina ne radi, u većini slučaja spominje se getch(); ali ja ne razumijem kako se to koristi
Npr. našao ovaj primjer:

Code:
#include <cstdlib>
#include <iostream>

using namespace std;

int main() {
    string password = "";
    char c = ' ';
    
    while(c != 13)
       {
       c = getch();
       password += c;
       cout << "*";
       }
}
ali baci grešku na getch()? Gdje je problem? Shvatio sam samo da getch "čupa" posebne znakove iz neke varijable. Ali kako ga (is)koristiti?

Također našao sam i cctype ali ne vidim kako bi to koristio, te C++ Array
koji valjda može svako slovo pojedinačno prepoznati, ali neznam kako da testiram bilo koju riječ (tj. da je neovisno o duljini same riječi tj. količini slova).

Zahvaljujem za bilo kakvu pomoć Koristim Dev C++.


p.s. ne, ne radi se o nikakvoj zadaći, nego hoću sam kreirati igru Vješala - našao ja neke na netu, ali to mi je samo hrpa znakova ja bi htel napravit sam da znam o čem se radi i kak se radi.
svebee je offline   Reply With Quote
Staro 10.02.2009., 21:50   #2
JuiceBox
Xulos :)
Moj komp
 
JuiceBox's Avatar
 
Datum registracije: Sep 2007
Lokacija: Osijek
Postovi: 7,541
Ja mislim da ti uz getch treba naredba #include <conio.h>
__________________
The Rich pays to win. The Poor spends to lose.
JuiceBox je offline   Reply With Quote
Oglasni prostor
Oglas
 
Oglas
Staro 13.02.2009., 11:46   #3
Dancho
Registered User
 
Datum registracije: Jun 2007
Lokacija: cro
Postovi: 42
evo zapocni s ovim snipetom:


Code:
#include <iostream>
#include <string>
#include <conio.h> // not standard header
using namespace std;

int main()
{
	string word="";
	unsigned int c=0;
	
	cout<<"Unesi rijec:";
	while(true)
	{
		c=_getch();
		if(c==0x0D)
			break;
		if( (c<'a' && c>'z') || (c<'A' && c>'Z') )
			continue;
		else
		{
			word+=c;
			_putch('*');
		}
	}
	
	cout<<endl;

	cout<<"Upisana rijec je:"<<word<<endl;

	return 0;
}
Dancho je offline   Reply With Quote
Oglasni prostor
Oglas
 
Oglas
Odgovori



Pravila postanja
Vi ne možete otvarati nove teme
Vi ne možete pisati odgovore
Vi ne možete uploadati priloge
Vi ne možete uređivati svoje poruke

BB code je Uključeno
Smajlići su Uključeno
[IMG] kod je Uključeno
HTML je Isključeno

Idi na