Avatar billede noerbo Nybegynder
26. september 2010 - 16:27 Der er 3 kommentarer og
1 løsning

brug af strtoul

Hej eksperter

  Jeg er i gang med at forsøge på at lave en streng om til en integer. Til dette bruger jeg strtoul.

  Jeg har dog lidt problemer i følgende eksempel:
#include <string.h>
#include <errno.h>
#include <stdio.h>

int main() {
  unsigned long int tmp = strtoul("2147483648", NULL, 10);
  printf("%lu\n", tmp);
  printf("%lu\n", strtoul("2147483648", NULL, 10));
  return 0;
}

Den første printf giver en compiler advarsel:
integers.c: In function ‘main':
integers.c:8: warning: format ‘%lu' expects type ‘long unsigned int', but argument 2 has type ‘int'

Når jeg kører programmet får jeg:
-2147483648
2147483648

Så den anden printf virker tilsyneladende. Mit problem opstår fordi at jeg gerne vil have gemt resultatet af strtoul i variablen tmp, men jeg er lidt i tvivl om jeg har valgt den rigtige type osv.

Er der en der kan hjælpe?
Avatar billede arne_v Ekspert
26. september 2010 - 19:02 #1
Hjælper det hvis du har en:

#include <stdlib.h>

?
Avatar billede noerbo Nybegynder
08. oktober 2010 - 11:51 #2
Fandt en anden løsning på mit problem, men tak for hjælpen arne_v
Avatar billede arne_v Ekspert
20. november 2010 - 01:21 #3
Så skriv løsningen og lig selv et svar.
Avatar billede noerbo Nybegynder
20. november 2010 - 15:22 #4
Endte ud med selv at skrive en funktion, der kunne det ønskede. Tog udgangspunkt i hvordan atoi virker.
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

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