Hülye float formátum gyors olvasása?

Fórumok

Kedves HUP-osok!

Egy olyan progi kimenetét kellene feldolgoznom C programmal, mely sajátos módon értelmezi a lebegőpontos szabványt. Konkrétan: helytakarékosság miatt "7.35E-15" helyett "7.35-15"-öt ír.

Azon kívül, hogy a program írójának minden szépet kíván az ember, mit lehet tenni?

Persze, be tudom programozni C-ben, hogy "Ha egy stringnek egyetlen számot kell tartalmaznia, és nem az első pozíciójában van egy "-", akkor tegyél be elé egy "E"-t", de nem tud valaki elegánsabb megoldást? Nincs valami glibc opció, hogy így értse?

(Az eredeti, gyári program természetesen jól olvassa be ezt az E-tlen formátumot.)

Előre is kösz!

Hozzászólások

Nekem is csak a string konverzió juteszembe. Szerintem csak így lehet.Az E-betűs verzió a szabvány.

------
3 fajta matematikus létezik. Aki tud számolni, és aki nem.

Hányat kell ebből beolvasni, hogy annyira kritikus a sebesség?

Pár 10^5-10^6 számot.

De nem írtam precízen: a fejlesztés sebessége számít. Amúgy már megírtam C-ben, nem volt nagy ügy.

Csak attól félek, hogy ez valami ritkán használt konvenció, aminek esetleg egyéb zakkantságai is vannak, amire nem készítettem fel a programomat, és majd később beüt, pedig valójában egy általam nem ismert '60-as évekből ittmaradt "őskövület-FORTRAN-tömör" kódolás, amit tudna a libc, csak én nem tudom megkérni rá.

Glibc opció nem hiszem, hogy van. Jellemzően a marhaságokat nem szokták implementálni.

A pozitívat úgy ábrázolja, hogy "7.35+15" a "7.35E15" helyett helytakarékosságból?

Az egyetlen normális mód az, hogy írsz egy függvényt, ami ellenőrzi, hogy van-e "E" a "-" előtt, ha nincs beraksz egyet, felülre meg írsz egy kommentet, hogy ez a függvény az idióták számábrázolását standard formátumra konvertálja.