Portál AbcLinuxu, 26. dubna 2024 05:50


Dotaz: Přepisovnání proměnných

Beda0 avatar 16.3.2010 18:03 Beda0 | skóre: 29
Přepisovnání proměnných
Přečteno: 144×
Odpovědět | Admin
Zdravím,
mam následující C kód. Pomocí funkce sscanf čtu textový řetězec ve kterém je 8bit číslo. Do b se načte normálně. Když potom ale čtu a tak se b vymaže. Když zadám číslo větší než 8 bit, tak se to, co přeteče uloží do b. Problém vydím asi v sscanf a formátovacím parametru %u ale nepodařilo se mi to vyřešit.
Víte někdo jak to udělat správně? a se musí načítat až po b

#include <stdio.h>
#include <stdlib.h>
typedef unsigned char u8; //8bit proměnná
 
typedef  struct {
  u8 a;
  u8 b;
 
} myStruct;

int main(int argc, char** argv) {
    myStruct Str;
    Reader(&Str);
    return (EXIT_SUCCESS);
}
int Reader(myStruct *pStr) {

    formatTextu8(&pStr->b);
    formatTextu8(&pStr->a);
}
int formatTextu8(u8 *dest) {
	if (sscanf("123", "%u", (u8 *) dest) == EOF)
		return -1;
	return 0;
}

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

16.3.2010 18:31 zulu
Rozbalit Rozbalit vše Re: Přepisovnání proměnných
Odpovědět | | Sbalit | Link | Blokovat | Admin
%hhu
Beda0 avatar 16.3.2010 18:33 Beda0 | skóre: 29
Rozbalit Rozbalit vše Re: Přepisovnání proměnných
Diky, to je ono. Skoušel sem %hu, nevěděl sem, že může bejt i %hhu.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.