Orjanp Skrevet 13. mars 2004 Del Skrevet 13. mars 2004 (endret) Noen som kan fortelle meg hvorfor følgende kode ikke fungerer? int main(int argc, char **argv) { int num = 5; //denne if testen slår ikke til. Hvorfor? if(isdigit(num)) printf("%i\n", num); return 0; } Endret 15. mars 2004 av Orjanp Lenke til kommentar
søppel Skrevet 13. mars 2004 Del Skrevet 13. mars 2004 man 3 isdigit http://asciitable.com/ 5 i ascii-tabellen er, som du ser, ikke ett siffer. Lenke til kommentar
☀ ❄ Skrevet 13. mars 2004 Del Skrevet 13. mars 2004 isdigit() er laget for å gjenkjenne hva slags type bokstav en char er. Det som skjer når du kaller isdigit(int) er at inten "implisitly" blir gjort om til en char med verdien 5. Og som søppel sier, en char med verdien 5 er ikke et tall. Lenke til kommentar
Orjanp Skrevet 14. mars 2004 Forfatter Del Skrevet 14. mars 2004 Okei, da skjønner jeg. Hvordan kan man kontrollere at det er et nummer man har med å gjøre? Da også et nummer som er større enn 10. Lenke til kommentar
☀ ❄ Skrevet 14. mars 2004 Del Skrevet 14. mars 2004 Du bruker char i steden for int Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå