Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Zastita za unos karaktera

[es] :: C/C++ programiranje :: Zastita za unos karaktera

[ Pregleda: 2987 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

pejan123

Član broj: 93769
Poruke: 7
..mtsns-ns.customer.sbb.co.yu.



Profil

icon Zastita za unos karaktera04.05.2006. u 16:40 - pre 217 meseci
Treba mi konkretan primer koriscenja zastite za unos karaktera, i/ili simbola. Ili barem neka ideja.
Ako moze preko while nekako?
Kod za zadatak sam odradio bez problema, samo mi ovo fali.
Hvala puno. :)
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.cmu.carnet.hr.

Sajt: www.dump.hr


Profil

icon Re: Zastita za unos karaktera04.05.2006. u 17:26 - pre 217 meseci
A sto je to "zastita za unos karaktera" ?
 
Odgovor na temu

pejan123

Član broj: 93769
Poruke: 7
..mtsns-ns.customer.sbb.co.yu.



Profil

icon Re: Zastita za unos karaktera04.05.2006. u 17:44 - pre 217 meseci
Pri unosu podataka je ne zelim da mi korisnik unosi slova ili simbole, vec samo brojeve.
Pa ako korisnik unese slovo, zelim da se pojavi poruka o gresci i ponovni unos.
Nisam se ranije dobro izrazio, jel tako?
 
Odgovor na temu

mulaz
Ljubljana

Član broj: 47602
Poruke: 2239
*.dial-up.dsl.siol.net.

Jabber: mulaz@elitesecurity.org
Sajt: www.mulaz.org


+184 Profil

icon Re: Zastita za unos karaktera04.05.2006. u 18:03 - pre 217 meseci
ako imas char slovo;

onda proveravas if (slovo <= 'a' && slovo => 'z') ...
ne mogu da se setim kojim redom idu slova sad.. a...zA..Z ili prvo velika slova, pa onda mala

proveravaj ti samo da je vece/jednako od 'a' i manje/jednako od 'z'
(provri ascii tabelu da vidis dal pocinje sa malim ili velikim 'a' i gde se zavrsava
Bolje ispasti glup nego iz aviona
http://www.mulaz.org/
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.cmu.carnet.hr.

Sajt: www.dump.hr


Profil

icon Re: Zastita za unos karaktera04.05.2006. u 18:35 - pre 217 meseci
Tako nesto vec postoji.

http://www.cppreference.com/stdstring/index.html

Pogledaj ove funkcije sta pocinju sa "is".
 
Odgovor na temu

del-boy
Bojan Delić
Beograd

Član broj: 9330
Poruke: 1089

Sajt: www.delic.in.rs


+21 Profil

icon Re: Zastita za unos karaktera04.05.2006. u 19:32 - pre 217 meseci
greška sa ajaxom oko izmene poruke! Za detalje pogledati http://www.elitesecurity.org/poruka/1138084 ! Uglavnom ako moderator može da obriše...

[Ovu poruku je menjao del-boy dana 04.05.2006. u 20:56 GMT+1]
 
Odgovor na temu

del-boy
Bojan Delić
Beograd

Član broj: 9330
Poruke: 1089

Sajt: www.delic.in.rs


+21 Profil

icon Re: Zastita za unos karaktera04.05.2006. u 19:47 - pre 217 meseci
Mislim da bi ovde najbolje bilo prožimeniti činjenicu da scanf vraća vrednost!

Kada napišeš recimo scanf("%d", &a), ovo će kao povratnu vrednost dati broj uspešno učitanih podataka (u ovom slučaju 1, ako je korisnik uneo ceo broj)!

E sad, ako to staviš u petlju imaš dobar alat za proveru:
Code:

printf("Unesi a: ");
while (!scanf("%d", &a) {
         printf("GRESKA! Unesi ponovo: ");
}


Ove funkcije koje su ostali naveli mislim da služe za proveru karaktera, odnosno provera šta je zadati znak u ASCII tabeli! To takođe možeš da iskoristiš, ali onda moraš sve da unosiš kao karakter, što malo komplikuje stvari kada je u pitanju broj sa više cifara!
 
Odgovor na temu

pejan123

Član broj: 93769
Poruke: 7
..mtsns-ns.customer.sbb.co.yu.



Profil

icon Re: Zastita za unos karaktera04.05.2006. u 20:15 - pre 217 meseci
Prvo hvala na svim odgovorima :)
ok, pokushao sam ovaj primer shto je del-boy predlozio.

Code:

#include <stdio.h>

main()
{
       int a;

       printf("Unesi a: ");
       while (!scanf("%d", &a)) {
         printf("GRESKA! Unesi ponovo: ");
       }
       //scanf("%d",&a);
}


Trebalo bi da radi ok, ali mi prejavljuje greshku (poruka o istoj), onako dok ne lupim ctrl+c.

pokushao sam i

Code:

#include <ctype.h>
  int isspace( int ch );

shto je predlozio NrmMyth.

ubacio sam ga u meni potreban zadatak.
oblika:
Code:

...
do{
        printf("\nUnesite broj takmicara: \n\tN = ");
        scanf("%c",&n);
        if(isspace(n))printf("\n ne moze! ");
     }while(n<2||n>max_dim||isspace(n));
     
     
     for(i=0;i<n;i++)
     {
                     for(j=0;j<3;j++)
                     {
                          do{
                            if(j==0) printf("\nUnesite tezinu koju je %d. takmicar podigao u dizanju sa trzanjem: \n\tA = ",i+1);
                            if(j==1) printf("\nUnesite tezinu koju je %d. takmicar podigao u dizanju sa izvlacenjem: \n\tB = ",i+1);
                            if(j==2) printf("\nUnesite tezinu %d. takmicara: \n\tC = ",i+1);
                            scanf("%c",&a[i][j]);
                            if(isspace(n))printf("\n ne moze! ");
                          }while(a[i][j]<1||isspace(a[i][j]));
                     }
     }
...


Funkcija radi svoj posao, ali ponegde mi duplira prijavu greshke i tekst za unos, shto je mozda posledica duple for petlje, al shta da radim kad moram da koristim matrice.

Shto se tiche del-boy ovog resenja verovatno je dobro, mozda mi je kompajler zeznuo stvar, a mozda i nije :)
 
Odgovor na temu

del-boy
Bojan Delić
Beograd

Član broj: 9330
Poruke: 1089

Sajt: www.delic.in.rs


+21 Profil

icon Re: Zastita za unos karaktera04.05.2006. u 21:08 - pre 217 meseci
Da, vidi stvarno, i meni upadne u beskonačnu petlju! Nisam testirao kod pre nego što sam napisao, ali bi trebalo tako da radi!

Pogledaću kasnije da probam da skontam u čemu je problem, sad sam malo u frci...


btw: Kolega, jel' Markoski? FTN, E1?
 
Odgovor na temu

pejan123

Član broj: 93769
Poruke: 7
..mtsns-ns.customer.sbb.co.yu.



Profil

icon Re: Zastita za unos karaktera04.05.2006. u 22:46 - pre 217 meseci
otkud znash :D
ti isto kolega a ;)
 
Odgovor na temu

pejan123

Član broj: 93769
Poruke: 7
..mtsns-ns.customer.sbb.co.yu.



Profil

icon Re: Zastita za unos karaktera05.05.2006. u 01:24 - pre 217 meseci
jao del-boy :)
sad vidim otkud znash :D
malo sam se proshunjao po forumu i vidim da su nekoliko likova trazili domace :)
moje drage kolege.
sve uzastopno. :/
Nemoj samo kompletne zadatke da im dajesh, ako se navade trazice svaki put.
Znam iz lichnog iskustva.
Inache ovo shto trazim, nije za domaci.
Markoski meni i nekom liku daje skoro svaki chas neshto extra da odradimo, jer smo kako kaze najglasniji ;)
A onda kad ne umemo da odradimo, da nam 9 na 10. :/
Kod mene znam da pola uzme da prepishe.
Mora da ce im biti lepo na kolokvijumu i kad bude posle cpp.
 
Odgovor na temu

del-boy
Bojan Delić
Beograd

Član broj: 9330
Poruke: 1089

Sajt: www.delic.in.rs


+21 Profil

icon Re: Zastita za unos karaktera05.05.2006. u 03:00 - pre 217 meseci
Da, vidiš i sam sad! Napisao sam negde da sam E2!

Uradio sam par domaćih jer sam imao vremena, a i imam par ortaka na E1, pa često dolazim u dodir sa vašim skriptama, a samim tim i onako usput skontam rešenje! Samo kodiranje mi ne uzima mnogo vremena, pa ga ponekad odradim!

A što se tiče ovog koda za proveru, sad sam 10ak minuta pokušavao da ga nateram da radi kod mene i ne uspevam! 100% je neka glupost od greške, ali spava mi se mnogo, ne mogu više da tražim... Koliko znam, ovo ti treba za ponedeljak, pa ako ja ne stignem neko drugi će se naći da ti pomogne... Čisto da pitam, sa kojim kompajlerom radiš?

Meni nije Markoski bio asistent, nego Žarko (mislim da on kod vas nikome ne drži vežbe), tako da ne znam direktno njegov sistem rada, ali čuo sam :|. Kolokvijum ti inače bude opuštencija ako si sve domaće radio sam, a koliko vidim radiš, tako da to ne bi trebalo da ti bude problem!

btw: Kako nije domaći? Taj isti domaći imaju i ovi ortaci (neki imali za danas (sad već juče), a neki za ponedeljak)...
 
Odgovor na temu

yooyo

Član broj: 4891
Poruke: 1101
..shall-bg.customer.sbb.co.yu.



Profil

icon Re: Zastita za unos karaktera05.05.2006. u 10:55 - pre 217 meseci
Code:
    
 printf("Unesi a: ");
 while (!scanf("%d", &a)) 
 {
    printf("GRESKA! Unesi ponovo: ");
    fflush(stdin); // ovo je falilo.
 }


scanf nije uspeo da procita pa je ostavio u stdin bufferu stanje pre pokusaja da procita. fflush(stdin) ce isprazniti stdin pa onda mozete ponovo da pokusate scanf.
 
Odgovor na temu

pejan123

Član broj: 93769
Poruke: 7
..mtsns-ns.customer.sbb.co.yu.



Profil

icon Re: Zastita za unos karaktera05.05.2006. u 15:24 - pre 217 meseci
Citat:
btw: Kako nije domaći? Taj isti domaći imaju i ovi ortaci (neki imali za danas (sad već juče), a neki za ponedeljak)...


jeste domaci ali taj deo za zastitu od space mi je bio extra :)

Citat:
Čisto da pitam, sa kojim kompajlerom radiš?


Radim sa Bloodshed dev cpp, novija verzija.
Ako znash neki bolji obavezno mi javi.

yooyo, hvala puno na resenju misterije, probacu cim se malo odmorim, al kontam da je ok. :)
 
Odgovor na temu

cynique
Ivan Štambuk
Zagreb@Croatia

Član broj: 93690
Poruke: 155
193.198.17.*

ICQ: 106979934
Sajt: istambuk.blogspot.com


Profil

icon Re: Zastita za unos karaktera05.05.2006. u 15:51 - pre 217 meseci
Citat:
yooyo: fflush(stdin) ce isprazniti stdin pa onda mozete ponovo da pokusate scanf.


fflush(3) nije definiran za input streamove po C standardu. Radi na windowsima, ali za ostale platforme ne mora nužno.
 
Odgovor na temu

[es] :: C/C++ programiranje :: Zastita za unos karaktera

[ Pregleda: 2987 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.