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

Kontrola unosa!!!

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

[ Pregleda: 1156 | Odgovora: 4 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mleposavic_lepi
Milan Leposavić
Trstenik

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

Jabber: mleposavic@elitesecurity.org


Profil

icon Kontrola unosa!!!12.01.2006. u 11:42

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 940@3.6GHz +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::
12.01.2006. u 11:42 

del-boy
Bojan Delić
Novi Sad

Član broj: 9330
Poruke: 862
*.225.eunet.yu.

ICQ: 77174165
Sajt: www.delic.in.rs


Profil

icon Re: Kontrola unosa!!!12.01.2006. u 13:48
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!
I ja blog za trku imam...
12.01.2006. u 13:48 

mleposavic_lepi
Milan Leposavić
Trstenik

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

Jabber: mleposavic@elitesecurity.org


Profil

icon Re: Kontrola unosa!!!13.01.2006. u 18:06
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:
Citat:


#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 940@3.6GHz +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::
13.01.2006. u 18:06 

IDE

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



Profil

icon Re: Kontrola unosa!!!13.01.2006. u 21:52
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...
13.01.2006. u 21:52 

_Doctor_
Beograd

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



Profil

icon Re: Kontrola unosa!!!16.01.2006. u 23:13
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 !
16.01.2006. u 23:13 

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

[ Pregleda: 1156 | Odgovora: 4 ]

Postavi temu Odgovori

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