[C] arrays converteren

Pagina: 1
Acties:

  • Zynth
  • Registratie: September 2001
  • Laatst online: 29-07 15:30
Ik heb een file waar een getal instaat, bijvoorbeeld 356,
en die file wil ik dan door C laten inlezen en opslaan in een integer.
Maar hoe doe ik dat?
een file lezen kan ik wel (word dan opgeslagen onder 'ifp')
maar hoe converteer ik dat in 's hemelsnaam naar een integer?

als jullie het niet weten, mag je ook antwoord geven op de volgende vraag:
hoe converteer ik een array van cijfers naar een integer?

thnx!

  • Tim
  • Registratie: Mei 2000
  • Laatst online: 23-07 15:18

Tim

Een array van cijfers naar een integer?
Kan je dat misschien wat beter uitleggen? :)

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
atoi?

  • Zynth
  • Registratie: September 2001
  • Laatst online: 29-07 15:30
ja dat kan ik ;)

stel:
array[0] heeft waarde 3
array[1] " 8
array[2] " 5

oftwel, het getal 385.

Wat ik simpelweg wil bereiken, is dat ik een file inlees waar een getal instaat, en dat ik dat getal uit die file in C kan gebruiken als integer.

duidelijker?

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
atoi() zoals ik al zei. converteert een ANSI-string (a) naar een integer (i).

int atoi( const char *string )

  • Zynth
  • Registratie: September 2001
  • Laatst online: 29-07 15:30
bedankt!

hoe moet ik trouwens in 's hemelsnaam achter zulke dingen komen??
JAVA heeft gewoon een api library online, waar je alle functies kan vinden.
Maar hoe (waar) zou ik nou zo'n atoi() functie voor C moeten vinden??

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
http://www.cplusplus.com/ref/

daar staat heel wat

Verwijderd

Op zondag 14 oktober 2001 23:00 schreef Zynth het volgende:
bedankt!

hoe moet ik trouwens in 's hemelsnaam achter zulke dingen komen??
JAVA heeft gewoon een api library online, waar je alle functies kan vinden.
Maar hoe (waar) zou ik nou zo'n atoi() functie voor C moeten vinden??
vragen op GoT ;) of aan anderen die 't beter weten :)
je hebt ook nog itoa en al die zut geloof ik, zoek maar ff op :)

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 10:05

Kees

Serveradmin / BOFH / DoC

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


  • igmar
  • Registratie: April 2000
  • Laatst online: 09-09 19:53

igmar

ISO20022

atoi() zoals ik al zei. converteert een ANSI-string (a) naar een integer (i).

int atoi( const char *string )
Slechte keus. atoi() biedt niet de mogelijk om te zien of de conversie goed gaat. Zo'n grote broer strtol() kan dat wel.

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 16-09 23:59
Each function returns the double, int, __int64 or long value produced by interpreting the input characters as a number. The return value is 0 (for atoi and _atoi64), 0L (for atol), or 0.0 (for atof) if the input cannot be converted to a value of that type. The return value is undefined in case of overflow.
strtol returns the value represented in the string nptr, except when the representation would cause an overflow, in which case it returns LONG_MAX or LONG_MIN. strtol returns 0 if no conversion can be performed. wcstol returns values analogously to strtol. For both functions, errno is set to ERANGE if overflow or underflow occurs.
Zoals u ziet is er bij beide functies geen verschil wat betreft de returnwaarde als er geen conversie gedaan kan worden. Ze returnen beide nul. Er is wel veschil bij over -en underflow.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Verwijderd

Op maandag 15 oktober 2001 09:03 schreef farlane het volgende:
Zoals u ziet is er bij beide functies geen verschil wat betreft de returnwaarde als er geen conversie gedaan kan worden. Ze returnen beide nul. Er is wel veschil bij over -en underflow.
Zoals u ook ziet, kunt u met atoi niet nagaan of er een fout opgetreden is of het getal 0 correct is geconverteerd. Daarnaast kunt u niet zien of er een overflow heeft plaatsgevonden. :P ;)
CAVEATS
atoi does no overflow checking, handles unsigned numbers poorly, and han-
dles strings containing trailing extra characters (like ``123abc'') poor-
ly. Careful use of strtol(3) and strtoul(3) can alleviate these prob-
lems.
<edit>quote molde layout</edit>

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 16-09 23:59
Zoals ik al zei is er idd verschil bij over -en underflow.

U kunt echter bij beide functies niet zien of nul goed is geconverteerd ,daar dit bij geen enkel getal geldt als een over- of underflow.

strtol geeft ook geen verdere foutmeldingen.

[edit]

Pardon, u hebt gelijk. strtol geeft een pointer naar de string waarop ie gestopt is. Die had ik ff over het hoofd gezien. Mijn excuses... :)

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.

Pagina: 1