Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 14 odgovora
  • 4.219 pregleda

Najnovija ↓

Zastita za unos karaktera 04.05.2006. u 17:40 · pre 249 meseci #1
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. :)
Re: Zastita za unos karaktera 04.05.2006. u 18:44 · pre 249 meseci #3
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?
Re: Zastita za unos karaktera 04.05.2006. u 19:03 · pre 249 meseci #4
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
Potpis
Bolje ispasti glup nego iz aviona
http://www.mulaz.org/
Re: Zastita za unos karaktera 04.05.2006. u 20:47 · pre 249 meseci #7
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!
Re: Zastita za unos karaktera 04.05.2006. u 21:15 · pre 249 meseci #8
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 :)
Re: Zastita za unos karaktera 04.05.2006. u 22:08 · pre 249 meseci #9
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?
Re: Zastita za unos karaktera 05.05.2006. u 02:24 · pre 249 meseci #11
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.
Re: Zastita za unos karaktera 05.05.2006. u 04:00 · pre 249 meseci #12
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)...
Re: Zastita za unos karaktera 05.05.2006. u 11:55 · pre 249 meseci #13
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.
Re: Zastita za unos karaktera 05.05.2006. u 16:24 · pre 249 meseci #14
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. :)
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme