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::