Výsledky 1 až 15 z 15

Téma: [C] - sscanf(): formatovaci retezec pro nacitani 8bit polozek

  1. #1

    Standardní [C] - sscanf(): formatovaci retezec pro nacitani 8bit polozek

    Nahodou netusi nekdo jesi v C existuje modifikator delky promennych v argumentu sscanf tak, aby slo nacitat primo do promenny typu byte (unsigned char)?

    Kdyz mam treba:

    unsigned char ip[4];
    sscanf(buffer,"blabla %u.%u.%u.%u blabla",ip+0,ip+1,ip+2,ip+3);

    tak to rve, ze formatovaci retezec %u ocekava pointer typu int, zatimco argument je pointer typu byte. Maximalne sem nasel %hu, ktery to zkrati na typ unsigned short, ale to je porad moc. Takze pak promennou ip musim vytvorit zbytecne jako unsigned int ip[4] nebo unsigned short int ip[4];

    Este me napada v argumentu sscanf ty pointery pretypovat na (unsigned int *), jenze to je prasarna, pac to bude zas prepisovat i pamet za poslednim prvkem ip[3] v celkovy velikosti 2 nebo 4 byte, kery bych tam musel rezervovat
    Naposledy upravil RayeR; 29.01.2008 v 11:38.

    Gigabyte GA-P67-DS3-B3, Core i7-2600K@4,5GHz, 2xKingston 2GB/1866MHz/CL11, Leadtek 7900GT-256MB DDR3 + Accelero S1, SB-Audigy + YMF724 + DreamBlaster combo, tuner FlyDVB duo, SSD Samsung 840 Pro 128GB + WD1003FBYX RE4 1TB, Seasonic S12II-430, 21" NEC 2190UXp, DVD-RW NEC 4550A->4551A mod, CD-RW Teac 524E, ZIP100, FDD, Canon PowerShot A70, A95+hacked firmware, EOS 350D+CHDK, Pentax K-30, Galaxy S3+CM13, HP ipaq 214, HP 200LX.
    2nd PC: Gigabyte GA-P31-DS3L with custom BIOS, Core2 Duo E8600@4,0GHz, 2xKingston 2GB/1066MHz/CL5
    3rd PC: Abit BX133-Raid, Tualatin 1300@1733/133/1,65V, 2x256MB. WEB: http://rayer.g6.cz

  2. #2

    Standardní Re: [C] - sscanf(): formatovaci retezec pro nacitani 8bit polozek

    Nevim jestli tomu dobre rozumim, ale co ti brani pouzit jednoduche "%c" ?
    Audiotrak Prodigy HD2 (2xOPA2134PA + LT1364) => Little Dot I+ (WE408A + AD8022) => Sennheiser HD555@595
    Asus Xonar D1 => Technics SU-A800 => Tesla 2xARN6608 + ARV-104

  3. #3

    Standardní Re: [C] - sscanf(): formatovaci retezec pro nacitani 8bit polozek

    Citace Původně odeslal Caleb Zobrazit příspěvek
    Nevim jestli tomu dobre rozumim, ale co ti brani pouzit jednoduche "%c" ?
    %c mi precte jeden znak z retezce ale ja chci precist cely dekadicky cislo, kery se muze sestavat z 1 az 3 znaku v rozsahu 0-255

    Gigabyte GA-P67-DS3-B3, Core i7-2600K@4,5GHz, 2xKingston 2GB/1866MHz/CL11, Leadtek 7900GT-256MB DDR3 + Accelero S1, SB-Audigy + YMF724 + DreamBlaster combo, tuner FlyDVB duo, SSD Samsung 840 Pro 128GB + WD1003FBYX RE4 1TB, Seasonic S12II-430, 21" NEC 2190UXp, DVD-RW NEC 4550A->4551A mod, CD-RW Teac 524E, ZIP100, FDD, Canon PowerShot A70, A95+hacked firmware, EOS 350D+CHDK, Pentax K-30, Galaxy S3+CM13, HP ipaq 214, HP 200LX.
    2nd PC: Gigabyte GA-P31-DS3L with custom BIOS, Core2 Duo E8600@4,0GHz, 2xKingston 2GB/1066MHz/CL5
    3rd PC: Abit BX133-Raid, Tualatin 1300@1733/133/1,65V, 2x256MB. WEB: http://rayer.g6.cz

  4. #4

    Standardní Re: [C] - sscanf(): formatovaci retezec pro nacitani 8bit polozek

    Jo uz to chapu
    Osobne bych to
    a) neresil, pripadne bych si pak v nejaky cyklu ty promenne z pole intu prekopiroval do pole charu
    b) naprogramoval si vlastni funkci, ktera by mi z onoho retezce ty cisla vykopirovala
    Audiotrak Prodigy HD2 (2xOPA2134PA + LT1364) => Little Dot I+ (WE408A + AD8022) => Sennheiser HD555@595
    Asus Xonar D1 => Technics SU-A800 => Tesla 2xARN6608 + ARV-104

  5. #5

    Standardní Re: [C] - sscanf(): formatovaci retezec pro nacitani 8bit polozek

    No prave me stve resit preformatovani pres int, kdyz to chci naladovat primo do naky pevne dany struktury, kde sou bajtovy polozky. Funkci si napsat muzu, ale to leda ze bych to pouzival vickrat. Takze patram jesi sem jen neco na tom mocnem sscanfu neprehlid nebo to fakt neumi.

    Gigabyte GA-P67-DS3-B3, Core i7-2600K@4,5GHz, 2xKingston 2GB/1866MHz/CL11, Leadtek 7900GT-256MB DDR3 + Accelero S1, SB-Audigy + YMF724 + DreamBlaster combo, tuner FlyDVB duo, SSD Samsung 840 Pro 128GB + WD1003FBYX RE4 1TB, Seasonic S12II-430, 21" NEC 2190UXp, DVD-RW NEC 4550A->4551A mod, CD-RW Teac 524E, ZIP100, FDD, Canon PowerShot A70, A95+hacked firmware, EOS 350D+CHDK, Pentax K-30, Galaxy S3+CM13, HP ipaq 214, HP 200LX.
    2nd PC: Gigabyte GA-P31-DS3L with custom BIOS, Core2 Duo E8600@4,0GHz, 2xKingston 2GB/1066MHz/CL5
    3rd PC: Abit BX133-Raid, Tualatin 1300@1733/133/1,65V, 2x256MB. WEB: http://rayer.g6.cz

  6. #6

    Standardní Re: [C] - sscanf(): formatovaci retezec pro nacitani 8bit polozek

    Podla man sscanf je to hh.
    Kód:
    sscanf(buffer,"blabla %hhu.%hhu.%hhu.%hhu blabla",ip+0,ip+1,ip+2,ip+3);
    1: Asus P2B 1.10 • Celeron 1100@1364/1.8V • 512MB SDRAM • Samsung SP1213N+WD AC28400 • Toshiba XM-6402B+SD-M1212 • PowerColor AR2L Radeon 9100 64MB • 3C900-Combo • Bt848A • ASB-3940UA • AWE-64 • DTK PTP-3007 • VisionMaster 405 • Umax UC630 • Star LC24-200 Colour 2: PCPartner TXB820DS • Cyrix MII PR300/1.8V • 256MB SDRAM • 2xSamsung HD400LD+IT8212F • Accesstek CW4001 • LS-120 • Mystique 4MB • Millennium II 4MB • 3C509 • CMI8329A+Dream MIDI • ADI ProVista E44 • SyncMaster 203B Notebook: DTK FortisPro TOP-5A • P166MMX/1.8V • 80MB EDO • Hitachi 5K80 40GB • 12,1" TFT Router: A-Trend ATC-1425B • i486DX 50@33/5V • 48MB FPM • WD AC14300 • UMC UM9003F • HP PC LAN 16/TP+ Car: Mazda 323P BA • Z5 1489ccm, 65kW@5500rpm, 134Nm@4000rpm

  7. #7

    Standardní Re: [C] - sscanf(): formatovaci retezec pro nacitani 8bit polozek

    Citace Původně odeslal Rainbow Zobrazit příspěvek
    Podla man sscanf je to hh.
    Kód:
    sscanf(buffer,"blabla %hhu.%hhu.%hhu.%hhu blabla",ip+0,ip+1,ip+2,ip+3);
    Jo diky, ze me to nenapadlo! Kdyz se pouziva %l a %ll tak proc ne %hh

    Este sem si vocekoval, jesi to fakt nepretejka a je to OK

    Kód:
    unsigned char ip[5];
    
    ip[4]=0x5A;
    sscanf(buffer,"%s %ld %u %c %hhu.%hhu.%hhu.%hhu:%u %lX %lu",fn,&fsize,&fid,&mode,ip+0,ip+1,ip+2,ip+3,&port,&chksum,&exectime);
    printf("overflow check: %02X\n",ip[4]);

    Gigabyte GA-P67-DS3-B3, Core i7-2600K@4,5GHz, 2xKingston 2GB/1866MHz/CL11, Leadtek 7900GT-256MB DDR3 + Accelero S1, SB-Audigy + YMF724 + DreamBlaster combo, tuner FlyDVB duo, SSD Samsung 840 Pro 128GB + WD1003FBYX RE4 1TB, Seasonic S12II-430, 21" NEC 2190UXp, DVD-RW NEC 4550A->4551A mod, CD-RW Teac 524E, ZIP100, FDD, Canon PowerShot A70, A95+hacked firmware, EOS 350D+CHDK, Pentax K-30, Galaxy S3+CM13, HP ipaq 214, HP 200LX.
    2nd PC: Gigabyte GA-P31-DS3L with custom BIOS, Core2 Duo E8600@4,0GHz, 2xKingston 2GB/1066MHz/CL5
    3rd PC: Abit BX133-Raid, Tualatin 1300@1733/133/1,65V, 2x256MB. WEB: http://rayer.g6.cz

  8. #8

    Standardní Re: [C] - sscanf(): formatovaci retezec pro nacitani 8bit polozek

    Jo ale peknyho majza na to %hhu! Ne kazdej prekladac to ma totiz spravne implementovany. Na PC s gcc 4.1.2 mi to fungovalo spravne ale na ARMu - arm-gcc 3.4.6 to ty polozky nacitalo jako UINT16! Kram jeden prasivej....

    Gigabyte GA-P67-DS3-B3, Core i7-2600K@4,5GHz, 2xKingston 2GB/1866MHz/CL11, Leadtek 7900GT-256MB DDR3 + Accelero S1, SB-Audigy + YMF724 + DreamBlaster combo, tuner FlyDVB duo, SSD Samsung 840 Pro 128GB + WD1003FBYX RE4 1TB, Seasonic S12II-430, 21" NEC 2190UXp, DVD-RW NEC 4550A->4551A mod, CD-RW Teac 524E, ZIP100, FDD, Canon PowerShot A70, A95+hacked firmware, EOS 350D+CHDK, Pentax K-30, Galaxy S3+CM13, HP ipaq 214, HP 200LX.
    2nd PC: Gigabyte GA-P31-DS3L with custom BIOS, Core2 Duo E8600@4,0GHz, 2xKingston 2GB/1066MHz/CL5
    3rd PC: Abit BX133-Raid, Tualatin 1300@1733/133/1,65V, 2x256MB. WEB: http://rayer.g6.cz

  9. #9

    Standardní Re: [C] - sscanf(): formatovaci retezec pro nacitani 8bit polozek

    na gcc pre xc167 som pouzival %hu, ak ti to pomoze

    Velky srot s pokazenym zdrojom na oknach
    Maly srot s pokazenym ventilatorom na linuchoch
    Prestigio Visconte 120

  10. #10

    Standardní Re: [C] - sscanf(): formatovaci retezec pro nacitani 8bit polozek

    Neviem odkedy tam to hh je - ale myslim, ze v m$ visual studio to neslo. Tak je mozne, ze to nepojde este aj vselikde inde.
    Naposledy upravil Rainbow; 31.01.2008 v 15:15.
    1: Asus P2B 1.10 • Celeron 1100@1364/1.8V • 512MB SDRAM • Samsung SP1213N+WD AC28400 • Toshiba XM-6402B+SD-M1212 • PowerColor AR2L Radeon 9100 64MB • 3C900-Combo • Bt848A • ASB-3940UA • AWE-64 • DTK PTP-3007 • VisionMaster 405 • Umax UC630 • Star LC24-200 Colour 2: PCPartner TXB820DS • Cyrix MII PR300/1.8V • 256MB SDRAM • 2xSamsung HD400LD+IT8212F • Accesstek CW4001 • LS-120 • Mystique 4MB • Millennium II 4MB • 3C509 • CMI8329A+Dream MIDI • ADI ProVista E44 • SyncMaster 203B Notebook: DTK FortisPro TOP-5A • P166MMX/1.8V • 80MB EDO • Hitachi 5K80 40GB • 12,1" TFT Router: A-Trend ATC-1425B • i486DX 50@33/5V • 48MB FPM • WD AC14300 • UMC UM9003F • HP PC LAN 16/TP+ Car: Mazda 323P BA • Z5 1489ccm, 65kW@5500rpm, 134Nm@4000rpm

  11. #11

    Standardní Re: [C] - sscanf(): formatovaci retezec pro nacitani 8bit polozek

    Citace Původně odeslal Rainbow Zobrazit příspěvek
    Neviem odkedy tam to hh je - ale myslim, ze v m$ visual studio to neslo. Tak je mozne, ze to nepojde este aj vselikde inde.
    No zajimavy je, ze mingw32 s gcc 3.4.5 to zvlada zimco arm-gcc 3.4.6 ne. Bohuzel o tom vic nevim, jaky patche tam kdo dal a tak... Tak sem to dal raci sproste do pole 32bit intu kde nehrozi ze by to preteklo.

    Gigabyte GA-P67-DS3-B3, Core i7-2600K@4,5GHz, 2xKingston 2GB/1866MHz/CL11, Leadtek 7900GT-256MB DDR3 + Accelero S1, SB-Audigy + YMF724 + DreamBlaster combo, tuner FlyDVB duo, SSD Samsung 840 Pro 128GB + WD1003FBYX RE4 1TB, Seasonic S12II-430, 21" NEC 2190UXp, DVD-RW NEC 4550A->4551A mod, CD-RW Teac 524E, ZIP100, FDD, Canon PowerShot A70, A95+hacked firmware, EOS 350D+CHDK, Pentax K-30, Galaxy S3+CM13, HP ipaq 214, HP 200LX.
    2nd PC: Gigabyte GA-P31-DS3L with custom BIOS, Core2 Duo E8600@4,0GHz, 2xKingston 2GB/1066MHz/CL5
    3rd PC: Abit BX133-Raid, Tualatin 1300@1733/133/1,65V, 2x256MB. WEB: http://rayer.g6.cz

  12. #12

    Standardní Re: [C] - sscanf(): formatovaci retezec pro nacitani 8bit polozek

    A co pouzita libc?
    1: Asus P2B 1.10 • Celeron 1100@1364/1.8V • 512MB SDRAM • Samsung SP1213N+WD AC28400 • Toshiba XM-6402B+SD-M1212 • PowerColor AR2L Radeon 9100 64MB • 3C900-Combo • Bt848A • ASB-3940UA • AWE-64 • DTK PTP-3007 • VisionMaster 405 • Umax UC630 • Star LC24-200 Colour 2: PCPartner TXB820DS • Cyrix MII PR300/1.8V • 256MB SDRAM • 2xSamsung HD400LD+IT8212F • Accesstek CW4001 • LS-120 • Mystique 4MB • Millennium II 4MB • 3C509 • CMI8329A+Dream MIDI • ADI ProVista E44 • SyncMaster 203B Notebook: DTK FortisPro TOP-5A • P166MMX/1.8V • 80MB EDO • Hitachi 5K80 40GB • 12,1" TFT Router: A-Trend ATC-1425B • i486DX 50@33/5V • 48MB FPM • WD AC14300 • UMC UM9003F • HP PC LAN 16/TP+ Car: Mazda 323P BA • Z5 1489ccm, 65kW@5500rpm, 134Nm@4000rpm

  13. #13

    Standardní Re: [C] - sscanf(): formatovaci retezec pro nacitani 8bit polozek

    Citace Původně odeslal Rainbow Zobrazit příspěvek
    A co pouzita libc?
    Dobra poznamka Da se nejak zistit verze? z .h nebo .a ?

    Gigabyte GA-P67-DS3-B3, Core i7-2600K@4,5GHz, 2xKingston 2GB/1866MHz/CL11, Leadtek 7900GT-256MB DDR3 + Accelero S1, SB-Audigy + YMF724 + DreamBlaster combo, tuner FlyDVB duo, SSD Samsung 840 Pro 128GB + WD1003FBYX RE4 1TB, Seasonic S12II-430, 21" NEC 2190UXp, DVD-RW NEC 4550A->4551A mod, CD-RW Teac 524E, ZIP100, FDD, Canon PowerShot A70, A95+hacked firmware, EOS 350D+CHDK, Pentax K-30, Galaxy S3+CM13, HP ipaq 214, HP 200LX.
    2nd PC: Gigabyte GA-P31-DS3L with custom BIOS, Core2 Duo E8600@4,0GHz, 2xKingston 2GB/1066MHz/CL5
    3rd PC: Abit BX133-Raid, Tualatin 1300@1733/133/1,65V, 2x256MB. WEB: http://rayer.g6.cz

  14. #14

    Standardní Re: [C] - sscanf(): formatovaci retezec pro nacitani 8bit polozek

    Neviem, neskusal som.
    1: Asus P2B 1.10 • Celeron 1100@1364/1.8V • 512MB SDRAM • Samsung SP1213N+WD AC28400 • Toshiba XM-6402B+SD-M1212 • PowerColor AR2L Radeon 9100 64MB • 3C900-Combo • Bt848A • ASB-3940UA • AWE-64 • DTK PTP-3007 • VisionMaster 405 • Umax UC630 • Star LC24-200 Colour 2: PCPartner TXB820DS • Cyrix MII PR300/1.8V • 256MB SDRAM • 2xSamsung HD400LD+IT8212F • Accesstek CW4001 • LS-120 • Mystique 4MB • Millennium II 4MB • 3C509 • CMI8329A+Dream MIDI • ADI ProVista E44 • SyncMaster 203B Notebook: DTK FortisPro TOP-5A • P166MMX/1.8V • 80MB EDO • Hitachi 5K80 40GB • 12,1" TFT Router: A-Trend ATC-1425B • i486DX 50@33/5V • 48MB FPM • WD AC14300 • UMC UM9003F • HP PC LAN 16/TP+ Car: Mazda 323P BA • Z5 1489ccm, 65kW@5500rpm, 134Nm@4000rpm

  15. #15

    Standardní Re: [C] - sscanf(): formatovaci retezec pro nacitani 8bit polozek

    Tak asi nijak rozumne to nejde. Akorat v linuxu kde je dynamicky linkovani de zistit prikazem ldd jaky knihovny to pouziva a tam v nazvu verze je. No nic, nebudu to dal pitvat. Ale pouzivani tohodle formatovaciho retezce proste neni moc bezpecny pri prenosu mezi platformama.

    Gigabyte GA-P67-DS3-B3, Core i7-2600K@4,5GHz, 2xKingston 2GB/1866MHz/CL11, Leadtek 7900GT-256MB DDR3 + Accelero S1, SB-Audigy + YMF724 + DreamBlaster combo, tuner FlyDVB duo, SSD Samsung 840 Pro 128GB + WD1003FBYX RE4 1TB, Seasonic S12II-430, 21" NEC 2190UXp, DVD-RW NEC 4550A->4551A mod, CD-RW Teac 524E, ZIP100, FDD, Canon PowerShot A70, A95+hacked firmware, EOS 350D+CHDK, Pentax K-30, Galaxy S3+CM13, HP ipaq 214, HP 200LX.
    2nd PC: Gigabyte GA-P31-DS3L with custom BIOS, Core2 Duo E8600@4,0GHz, 2xKingston 2GB/1066MHz/CL5
    3rd PC: Abit BX133-Raid, Tualatin 1300@1733/133/1,65V, 2x256MB. WEB: http://rayer.g6.cz

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •