Avatar billede stieper Nybegynder
29. oktober 2004 - 14:45 Der er 8 kommentarer og
1 løsning

Hjælp til brug af isdigit i simpel c programmering

Kan nogle hjælpe mig med det mest simple c programmering. Jeg er ret "rusten" i c programmering, og kan ikke "greje", hvorfor nedenstående kode ikke kan verificere om der er indtastet tal eller bogstaver.??
#include <stdio.h>
#include <ctype.h>

main()
{

int iGuessNumber=0;
int iRandNumb=0;
srand(time(0));

  iRandNumb=(rand()%99+1);
  printf("\n%d", iRandNumb);
  printf("\n\nGæt et tal mellem 1 og 100 : ");
  scanf("%d", &iGuessNumber);

 
  if (isdigit(iGuessNumber)==0)
    printf("\nDu har ikke indtastet et tal!\n");
  else{ 
    if (iGuessNumber==iRandNumb)
    printf("\nTillykke! Du gættede rigtigt!\n");
    else
    printf("\nDesværre, du gættede forkert - det rigtige tal var: %d", iRandNumb);
  } //end else
 

}//end main


Er det noget med at man kun kan evaluere en char - variabel med isdigit funktionen??

Mvh Stieper
Avatar billede arne_v Ekspert
29. oktober 2004 - 15:21 #1
Du skal læse en streng ind i et char array og så checke de enkelte chars
med isdigit.
Avatar billede arne_v Ekspert
29. oktober 2004 - 15:25 #2
eller læse en streng ind i et char array og bruge strtol
Avatar billede stieper Nybegynder
29. oktober 2004 - 15:27 #3
Okay?! Jeg fatter minus.. :-( Men er som sagt ikke så hård til det endnu.. kan du give et eksempel??
Avatar billede arne_v Ekspert
29. oktober 2004 - 15:30 #4
int isalldigit(char *s)
{
  int i;
  for(i=0;i<strlen(s);i++) if(!isdigit(s[i])) return 0;
  return 1;
}

...

char buf[20];
int v;

...

sscanf("%s", buf);
if(isalldigit(buf)) {
    v = atoi(buf);
    ...
}
else
{
    ...
}
Avatar billede stieper Nybegynder
29. oktober 2004 - 15:34 #5
Ta' Sa' la' ha' :-)
Will try...
Smid svar for point ;-)
Avatar billede arne_v Ekspert
29. oktober 2004 - 15:41 #6
kommer her

skriv hvis det driller
Avatar billede stieper Nybegynder
29. oktober 2004 - 23:34 #7
Kan ikke acceptere svaret? Hmmm... Why?
Avatar billede arne_v Ekspert
29. oktober 2004 - 23:40 #8
Du markerer mit navn så det bliver blåt og klikker accepter
Avatar billede stieper Nybegynder
29. oktober 2004 - 23:42 #9
Sa' la' ha' :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester