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

Kontrola unosa!!!

[es] :: C/C++ programiranje :: Kontrola unosa!!!

[ Pregleda: 2943 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mleposavic_lepi
Milan Leposavić
Privatno
Trstenik

Član broj: 16661
Poruke: 585
*.skydsl.de.

Jabber: mleposavic@elitesecurity.org


+1 Profil

icon Kontrola unosa!!!12.01.2006. u 11:42 - pre 192 meseci
Kako da odradim kontrolu unosa podataka, potrebno je da se pri unosu podataka samo unose brojevi od 0 do 9 i tacka za decimalne brojeve, a kad se unese nesto drugo da se dobije poruka o gresci. Potreban je sto kraci kod da bih ga uneo u vec postojeci program.

Imam vec odradjen program za kontrolu unosa ali je predugcak, treba mi nesto manje.

Hvala unapred!!!
::DFI LP DK 790FXB-M2RSH::AMD PhenomII [email protected] +100mV::TT BigWater735+BlackIce 360::4GB Corsair XMS2 Dominator 1066MHz::Gainward HD4870 512MB GDDR5::2xWD Raptor 74GB RAID::Auzentech X-Fi Prelude 7.1::BigTower TT Armor+::Enermax Galaxy 1000W PSU::LG Flatron W2252TQ 22"::APC SmartUPS 1500I::BluRay LG GBW-H10N::Logitech Z5500::Logitech Desktop MX 5500 Revolution::
 
Odgovor na temu

del-boy
Bojan Delić
Beograd

Član broj: 9330
Poruke: 1089

Sajt: www.delic.in.rs


+21 Profil

icon Re: Kontrola unosa!!!12.01.2006. u 13:48 - pre 192 meseci
Misliš treba ti samo unos realnih brojeva?
Funkcija scanf vraća broj uspešno učitanih vrednosti, tako da ako na primer komantom scanf("%f", &k) čekaš neki unos a korisnik unese slovo ova funkcija će vratiti 0, a ako unese ispravan realan broj vratiće 1.

Znači posle unosa proveri if (scanf("%f", &k)) {radi nešto} else {printf("GRESKA!!!");}

Nadam se da si na to mislio!
 
Odgovor na temu

mleposavic_lepi
Milan Leposavić
Privatno
Trstenik

Član broj: 16661
Poruke: 585
*.skydsl.de.

Jabber: mleposavic@elitesecurity.org


+1 Profil

icon Re: Kontrola unosa!!!13.01.2006. u 18:06 - pre 192 meseci
Evo postavicu ti ovo sto imam ali sam mislio da odradim sto krace jer je ovaj kod preobiman. U pitanju je kontrola unosa podataka kod programa za menjacnicu, znaci kad korisnik unese slovo da prikaze gresku i da korisnik ponovi unos.

Evo koda: [quote]

#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>

#define NOVI_RED 0x0D
#define RAZMAK 0x20
#define CIFARA 6 /* 5 mesta za cifre i jedno mesto za tacku = ukupno 6 */

void provera ( char * );

void main ()
{
char uuu [CIFARA+1]; /* dimenzionisanje stringa */
double prod_kurs;

printf ( "Unesite prodajni kurs: " );
provera ( uuu );
prod_kurs = atof ( uuu );
printf ( "\nUneli ste prodajni kurs: %.2f\n", prod_kurs );

}


void provera ( char * pom_str )
{
int c;
int brojac = 0; /* brojac unetih cifara */


/* idemo sa funkcijom getch */
while ( ( c = getch () ) != (int) NOVI_RED ) /* zavrsetak unosa je taster ENTER */
{
switch ( (char) c )
{
case 0x2E: /* tacka */
case 0x30: /* broj 0 */
case 0x31: /* broj 1 */
case 0x32: /* broj 2 */
case 0x33: /* broj 3 */
case 0x34: /* broj 4 */
case 0x35: /* broj 5 */
case 0x36: /* broj 6 */
case 0x37: /* broj 7 */
case 0x38: /* broj 8 */
case 0x39: /* broj 9 */
putchar ( c ); /* echo - getch funkcija ne prikazuje kod pritisnutog tastera */
*pom_str++ = (char) c; /* popuni string */
brojac++; /* azuriraj brojac */
break;

/* nedozvoljeni tasteri */
default:
putchar ((int) RAZMAK); /* ponisti pritisnut taster */
printf ( "\a\b" ); /* jedan beep i vrati kursor */
break;
}
if ( brojac == CIFARA ) break; /* boundary checking */
}

*pom_str = 0; /* terminiraj string */
}
::DFI LP DK 790FXB-M2RSH::AMD PhenomII [email protected] +100mV::TT BigWater735+BlackIce 360::4GB Corsair XMS2 Dominator 1066MHz::Gainward HD4870 512MB GDDR5::2xWD Raptor 74GB RAID::Auzentech X-Fi Prelude 7.1::BigTower TT Armor+::Enermax Galaxy 1000W PSU::LG Flatron W2252TQ 22"::APC SmartUPS 1500I::BluRay LG GBW-H10N::Logitech Z5500::Logitech Desktop MX 5500 Revolution::
 
Odgovor na temu

IDE

Član broj: 53403
Poruke: 586
*.crnagora.net.



Profil

icon Re: Kontrola unosa!!!13.01.2006. u 21:52 - pre 192 meseci
ja bih to mozda ovako uradio: napisao bih f-ju koja provjerava ono sto joj je poslato i ako joj je poslat broj ili tacka: vraca 1, a ako je nesto drugo poslato: vraca 0.Nadam se da ce ti ovo pomoci...
Code:

int kontrola(char a)
{
if(a>='0' && a<='9' || a=='.')
return 1;     vraca 1 ako je unesen samo broj ili tacka
else
return 0;     vraca 0 ako je uneseno nesto drugo
}


a u main() - u bih slao svaki pritisak tastera ovoj f-ji i tako odmah provjeravao sta je pritisnuto....
ma ima puno nacina...



[Ovu poruku je menjao fucking voodoo dana 13.01.2006. u 22:55 GMT+1]
there's something out there
waiting for us,
and it ain't no man...
 
Odgovor na temu

_Doctor_
Beograd

Član broj: 68915
Poruke: 12
*.ptt.yu.



Profil

icon Re: Kontrola unosa!!!16.01.2006. u 23:13 - pre 191 meseci
Slazzem se sa kolegom fucking voodoo, samo shto bi ja josh malo skratio:

Code:

int check (char ch) {
  return (ch >= '0' && ch <= '9') || ch == '.';
}


pozdrav
Svet je pun budala koje misle da je svet pun budala !
 
Odgovor na temu

[es] :: C/C++ programiranje :: Kontrola unosa!!!

[ Pregleda: 2943 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

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