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!
- 1008 megtekintés
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.
- A hozzászóláshoz be kell jelentkezni
sed -e 's/\([0-9]\)-\([0-9.]\)/\1-E\2/g'
Ha van rá lehetőség, akkor ezt lefuttatod az adaton, és utána a progit, vagy progiból meghívod.
- A hozzászóláshoz be kell jelentkezni
Illetve ha számjegy után csak ebben az esetben állhat "-" jel, akkor ennyi is elég:
sed 's/\([0-9]\)-/\1E-/g'
-----
Dropbox tárhely igénylése: https://www.getdropbox.com/referrals/NTI2MzM2MjA5
- A hozzászóláshoz be kell jelentkezni
Ja, én csak C-s megoldásban gondolkodtam, de igaz.
------
3 fajta matematikus létezik. Aki tud számolni, és aki nem.
- A hozzászóláshoz be kell jelentkezni
Hányat kell ebből beolvasni, hogy annyira kritikus a sebesség?
- A hozzászóláshoz be kell jelentkezni
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á.
- A hozzászóláshoz be kell jelentkezni
nem, ez nem konvenció.
ilyet semmilyen normális rendszer nem használ.
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni