Avatar billede bolmer Nybegynder
11. oktober 2005 - 22:15 Der er 8 kommentarer og
1 løsning

Mærkligt tal med getchar()

int main()
{
  int c;
  printf("Enter the size: ");
  c = getchar();
  printf("Size was: %d\n", c);

  return 1;
}

indtaster jeg fx 5 så bliver c = 53, det var jo ikke lige det jeg havde tænkte mig. Hvad er meningen lige med getchar() hvis man ikke kan regne med at det man indtaster bliver gemt nogen stedet?
Avatar billede nielle Nybegynder
11. oktober 2005 - 22:19 #1
Dette skyldes at karakteren '5' har ASCII-værdien 53.
Avatar billede arne_v Ekspert
11. oktober 2005 - 22:20 #2
c = getchar() - '0';
Avatar billede nielle Nybegynder
11. oktober 2005 - 22:20 #3
printf("Size was: %c\n", c);
Avatar billede arne_v Ekspert
11. oktober 2005 - 22:21 #4
Avatar billede nielle Nybegynder
11. oktober 2005 - 22:22 #5
Det der driller dig er at der er forskel på karakteren/tegnet '5' og så cifret/tallet 5.
Avatar billede arne_v Ekspert
11. oktober 2005 - 22:22 #6
scanf("%d",&c);

læser tal
Avatar billede arne_v Ekspert
11. oktober 2005 - 22:23 #7
char s[12];
fgets(s,sizeof(s),stdin);
c = atoi(s);

læser også tal
Avatar billede bolmer Nybegynder
11. oktober 2005 - 22:27 #8
Tak skal i ha. Arne får point for den der med scanf(), den virker mest oplagt at bruge.
Avatar billede arne_v Ekspert
11. oktober 2005 - 22:35 #9
så ligger jeg et svar
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