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

Da li moze sa int-om?

[es] :: C/C++ programiranje :: Da li moze sa int-om?

[ Pregleda: 4521 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

strahinja_ftn

Član broj: 77998
Poruke: 7
*.110.eunet.yu.



Profil

icon Da li moze sa int-om?17.12.2005. u 19:51 - pre 223 meseci
Pitanje je sledece: Da li je moguce da ulazna konverzija bude %d tj. int a da program proverava da li je korisnik uneo ceo broj? kada stavim da je ulazna konverzija %d program prima samo prvi ceo broj npr: 33.45 program primi 33, a 45 unese kao sledeci podatak. Meni treba da izbaci poruku o gresci i da se unos vrsi ponovo. Ak' nek' zna pomagaj!!
 
Odgovor na temu

del-boy
Bojan Delić
Beograd

Član broj: 9330
Poruke: 1089

Sajt: www.delic.in.rs


+21 Profil

icon Re: Da li moze sa int-om?17.12.2005. u 20:34 - pre 223 meseci
Koristi konverziju za realne tipove (%f ili %lf) i onda proveri kof je tipa promenljiva! I mene je zanimalo kako da odredim kod je tipa promenljiva pa sam pitao! Pogledaj temu http://www.elitesecurity.org/t...aznati-kog-je-tipa-promenljiva!

btw. Kolega, dobrodošao na forum! :D
 
Odgovor na temu

strahinja_ftn

Član broj: 77998
Poruke: 7
*.194.EUnet.yu.



Profil

icon Re: Da li moze sa int-om?18.12.2005. u 00:33 - pre 223 meseci
Pozz! Markoski (asistent) kaze da sve moze da se odradi sa int-om. Ja koristio double a on kaze da mu se ne svidja posto zauzima vise memorije?! Mora da moze sa int-om ali kako???
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

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

Sajt: www.dump.hr


Profil

icon Re: Da li moze sa int-om?18.12.2005. u 09:38 - pre 223 meseci
Neka ti on onda pojasni pa nam ti postaj da vidimo sta je to bilo.
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Da li moze sa int-om?18.12.2005. u 10:04 - pre 223 meseci
Citat:

Ja koristio double a on kaze da mu se ne svidja posto zauzima vise memorije?!


:) Štedljiv neki čovek...

No, dobro...


// NETESTIRANO !!!

Code:

#include <stdlib.h> // zbog system PAUSE
#include <stdio.h> // zbog printf, scanf, ...

int main(int argc, char* argv[])
{
    int x;
    int y;

    printf( "Unesi prvi broj:" );
    scanf( "%d", &x);

    // **************************************
    fflush ( stdin ); // <- MOŽDA OVO
    // **************************************
        
    printf( "Unesi drugi broj:" );
    scanf( "%d", &y );

    printf ( "x=%d, y=%d\n", x, y );

    system( "PAUSE" );
    return 0;
}





[Ovu poruku je menjao X Files dana 18.12.2005. u 11:07 GMT+1]
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

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

Sajt: www.dump.hr


Profil

icon Re: Da li moze sa int-om?18.12.2005. u 11:08 - pre 223 meseci
Bojim se da nisi shvatio covjeka. Pogledaj prvi post.
 
Odgovor na temu

del-boy
Bojan Delić
Beograd

Član broj: 9330
Poruke: 1089

Sajt: www.delic.in.rs


+21 Profil

icon Re: Da li moze sa int-om?18.12.2005. u 12:20 - pre 223 meseci
Citat:
strahinja_ftn: Pozz! Markoski (asistent) kaze da sve moze da se odradi sa int-om. Ja koristio double a on kaze da mu se ne svidja posto zauzima vise memorije?! Mora da moze sa int-om ali kako???


Meni nije on asistent nego Žarko, a on ne zeza mnogo oko tih stvari! Ovo što on traži ne znam kako da uradim. Pitaj njega!
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Da li moze sa int-om?18.12.2005. u 12:54 - pre 223 meseci
Ono sto znam od ranije je da scanf() funkcija omogucuje samo osnovnu
funkcionalnost unosa, i ne ostavlja previse mesta za validaciju unosa. Za bilo
koji ozbiljniji unos treba koristiti buffere koji se kasnije parsuju po zelji.

dakle: fgets, fflush, sscanf, ...

Mozda moze i sa scanf, ali ja ne znam...







Ovde ima mozda jedno od lepsih resenja...
http://andromeda.fesb.hr/fesbX...is/diskretni/cstart/c_055a.htm

[Ovu poruku je menjao X Files dana 18.12.2005. u 18:25 GMT+1]
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.dial.InfoSky.Net.



+2790 Profil

icon Re: Da li moze sa int-om?18.12.2005. u 19:13 - pre 223 meseci
Citat:
strahinja_ftn: Pozz! Markoski (asistent) kaze da sve moze da se odradi sa int-om. Ja koristio double a on kaze da mu se ne svidja posto zauzima vise memorije?! Mora da moze sa int-om ali kako???

Mislim da je hteo da kaže da se zadatak koji rešavaš može uraditi bez realnih tipova, a ne da se to odnosi na unos sa tastature. Za 100% bezbedan unos unosi stringove, pa ih onda parsiraj. Znači, za unos koristi fgets(), pa onda konvertuj.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Da li moze sa int-om?18.12.2005. u 21:51 - pre 223 meseci
Mozda ovako, za proveru unosa (nekog integera)

Code:

#include <stdio.h>
int main()
{
    int ret, x = 0;
    char c;

    printf( "Unesite X: " );
    ret = scanf( "%d", &x );

    printf( "X = %d\tret = %d\n", x, ret );

    if( ret != 1 )
       printf("Nije broj!\n");
    else
    {
       ret = scanf("%c", &c);
       if ( c != '\n' )
          printf("Greska!\n");
    }
    system( "PAUSE" );
    return 0;
}
 
Odgovor na temu

strahinja_ftn

Član broj: 77998
Poruke: 7
*.ftn.ns.ac.yu.



Profil

icon Re: Da li moze sa int-om?21.12.2005. u 10:40 - pre 223 meseci
Sad kaze da u opste nemora da se vrsi provera zato sto jos nismo stigli do toga?! Eto tako vam je to.
Mada drugi asistent kaze da se tor radi sa fgets.
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Da li moze sa int-om?21.12.2005. u 16:43 - pre 223 meseci
fgets() je najbolje resenje jer se lako moze naknadno ispitati sta je uneto... u svakom
slucaju imas kod gore koji sam ostavio, i koji radi, pa kombinuj...
 
Odgovor na temu

chupcko
Negde
Beograd

Član broj: 5560
Poruke: 1141

Sajt: www.google.com


+63 Profil

icon Re: Da li moze sa int-om?30.12.2005. u 12:34 - pre 222 meseci
Nije mi bas najjasnije sta zelis da uradis, ali ajde da pokusam da rekonstruisem pitanje:

Zelis koristeci samo int promennljive da ucitas neki niz karaktera i da dozovlis unosenje samo celobrojnih vrendosti:

3287 => ispravno
-76 => ispravo
783.0000 => ispravno (ili mozda nije)
788.6576 => neispravno

Recimo nesto ovako ti moze dosta pomoci ?

Code:

#include <stdio.h>

int main(void)
{
  int a, b, n;

  n = scanf("%d.%d", &a, &b);
  printf("n:%d a:%d b:%d\n", n, a, b);
}


CIsto za podsetnik: scanf vraca koliko je uspesno skeniranih entiteta pronasao :).
Mozes da koristis i %*d, u tom slucaju on ocekuje broj ali ga ne smesta ni u jednu varijablu :).

Doduse kao sto neko rece, mozda je najoblje da sam napravis neki automat za prepoznavanje brojeva na ulazu.

P.S. man 3 scanf

CHUPCKO
 
Odgovor na temu

Mali Misha
Mihajlo Anđelković
NBGD

Član broj: 79396
Poruke: 379
*.powernet.bg.

ICQ: 195487525
Sajt: cpptea.com


+1 Profil

icon Re: Da li moze sa int-om?30.12.2005. u 15:41 - pre 222 meseci
Ako pristupis buffer-u stdin, mozes direktno da procitas sta je ostalo iza int-a. Ako ti je samo bitno da nije unet realan broj dovoljno je da proveris da li su ostali tacka ( '.' ) i jedna cifra ( '0' - '9' ). Ako korisnik treba da unese striktno samo int, tamo treba da se nadje samo znak za novu liniju ( '\n' ).

Sad, eh, ja samo ne znam standardan nacin da se do ovog bafera dodje. Kod MS VC++ 6.0 je to stdin->_ptr kod BCC 5.5 stdin->curp. Dakle, recimo ovako:

Code:
#include <stdio.h>
#include <ctype.h>

main()
{
    int x;

    scanf("%d",&x);

    if(stdin->_ptr[0]=='.' && isdigit(stdin->_ptr[1]) )
    {
        printf("NOT OK"); // realan broj
    }
    else printf("OK"); // ceo broj + moguc ostatak koji nije realan br.
    
    return 0;
}
ili
Code:
// ...
    if(stdin->_ptr[0]=='\n')
    {
        printf("OK"); // samo ceo broj
    }
    else printf("NOT OK"); // ceo broj + ostatak
// ...

Ako gresim, bicu ispravljen ;)
Ipak se ++uje.
 
Odgovor na temu

[es] :: C/C++ programiranje :: Da li moze sa int-om?

[ Pregleda: 4521 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

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