Toon posts:

[C++] Validatie van een int

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hou kan je voorkomen dat er een letter word ingevuld ipv. een cijfer ?
Of heeft iemand hier een goede turtorial voor ?
Ik wil namelijk C++ gaan leren, php, asp enzow ken ik al.
Heeft C++ ook een functie zoals is_numeric() ?

int nummer;

printf("\nTyp een nummer : ");
scanf("%d",&nummer);

if(nummer!=0){


}

  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
Kijk eens naar http://www.rt.com/man/scanf.3.html bij de sectie "return values". Dan kom je er denk ik wel uit ;)

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


Verwijderd

Topicstarter
Zou je aub. even een voorbeeldje kunnen geven.
Mijn engels is ook weer niet zo goed ;-)

scanf("%d",&nummer);

Ik begrijp wel uit de tekst dat je iets met het bovenstaande moet gaan doen maar hoe :?

  • GreeTz
  • Registratie: Juli 2000
  • Laatst online: 24-05 16:15

GreeTz

took the red pill

dit is toch niet zo moeilijk, als je al PHP kent?

Alleen:           DE GROETJES


Verwijderd

Topicstarter
Het is wel anders dan php hoor, niet zoveel maar wel het stukje over char, int & string enzow.
Daarom vraag ik het even hier, en de boekenwinkel had geen c++ boek gister.
En op de meeste websites word dit stukje overgeslagen 8)7

Of zal C++.Net makkelijk zijn omdat ik ook al redelijke Visual Basic ervaring heb?

[ Voor 17% gewijzigd door Verwijderd op 30-05-2004 12:17 ]


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
doordat je
C++:
1
int nummer;

hebt zal in nummer altijd een numerieke waarde staan. Of de scanf ook daadwerkelijk een nummer heeft opgeleverd kan je achterhalen door de return waardes van scanf.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
Kijk eens naar http://www.rt.com/man/scanf.3.html bij de sectie "return values".
Mijn engels is ook weer niet zo goed ;-)
These functions return the number of input items assigned,
which can be fewer than provided for, or even zero, in the
event of a matching failure. Zero indicates that, while
here was input available, no conversions were assigned;
typically this is due to an invalid input character, such
as an alphabetic character for a `%d' conversion.
vertaling:
- het totaal aantal matches van de input op je scanf patroon terug geeft.
- meer specifiek: 0 wordt teruggegeven bijvoorbeeld een alfabetisch karakter wordt ingevoerd terwijl in het patroon %d staat.

scanf is een functie die een resultaat oplevert, zoiets als een procedure in visual basic, in tegen stelling tot een subroutine. Daar zul je dus iets mee moeten doen.

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


Verwijderd

Veilig scannen vergt een truukje, je moet een extra karakter scannen zodat je zeker weet of er geen rare tekens achter de cijfers zijn ingegeven (ik heb dat al eens gepost maar die thread is gesloopt door BC3).

C:
1
2
3
4
5
6
7
8
    int  waarde;
    char extra;
    int  gelezen= scanf("%d%c", &waarde, &extra);
    if(gelezen == 2 && extra == '\n') {
        printf("U gaf %d in.\n", waarde);
    } else {
        puts("Ongeldige invoer!");
    }


edit:
Oeps, in de tijd dat ik de post typte is er opeens leven in de brouwerij. Als dit te veel verraadt wis ik het wel.

[ Voor 18% gewijzigd door Verwijderd op 30-05-2004 14:26 ]


  • Eelis
  • Registratie: Januari 2003
  • Laatst online: 21-02-2015
.

[ Voor 99% gewijzigd door Eelis op 18-02-2015 19:32 ]


  • Radiant
  • Registratie: Juli 2003
  • Niet online

Radiant

Certified MS Bob Administrator

In C++ kan je zowiezo geen characters in integers proppen, dus je hebt geen is_numeric() nodig.

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 09-04 22:08
Verwijderd schreef op 30 mei 2004 @ 12:13:
Het is wel anders dan php hoor, niet zoveel maar wel het stukje over char, int & string enzow.
Daarom vraag ik het even hier, en de boekenwinkel had geen c++ boek gister.
En op de meeste websites word dit stukje overgeslagen 8)7
Zomaar het eerste de beste boek kopen is meestal een slecht idee. Bij FORTRAN is het redelijk risicoloos, dat bestaat lang genoeg, maar voor modernere talen is meer prut op de markt ("met de hype mee"). www.accu.org heeft een goede review sectie. Zelf geef ik de voorkeur aan accelerated C++, de search vertelt wel waarom.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • ATS
  • Registratie: September 2001
  • Laatst online: 12-02 13:46

ATS

Verwijderd schreef op 30 mei 2004 @ 11:53:
Mijn engels is ook weer niet zo goed ;-)
Het klinkt lullig, maar... misschien is het wel een goed plan daar iets aan te doen dan. Je zal veruit de meeste documentatie en online hulp in het Engels gaan vinden. Het kan uit daar wat in te investeren. Leuk? Nee, maar het is wel de realiteit.

My opinions may have changed, but not the fact that I am right. -- Ashleigh Brilliant

Pagina: 1