problem v C

Mikro mikro.shw
Středa Březen 17 12:05:04 CET 2004


----- Original Message -----
From: "Jakub Ladman" <ladmanj@volny.cz>
To: "Multiple recipients of list" <hw-news@list.gin.cz>
Sent: Wednesday, February 21, 2001 7:06 PM
Subject: problem v C


> Ceckari pomozte,
> mam nasledujici pole a chci tisknout data v nich obsazena timto zpusobem
> printf("%s",menu1[mnu]);
> problem je ten, ze to vytiskne az do uplneho konce pole,
> tedy napr. pro mnu=1 : "2. Teplota      3. Cas/Datum    "
> neni nejake elegantnejsi reseni, nez postupny zapis daneho poctu char-u
> (napr. printf("%c%c%c%c...%c",menu2[mnu])
> Nacpat to do nejakeho bufferu nepripada v uvahu, je malo RAM
> Dalsi vec je pristup do pole ukazatelem, jak na to? Jde mi o volani fce s
> parametrem cislo polozky v menu a vlastni pole menu a ta fce ma urcenou
> polozku vytisknout na prvni radek LCD displaye a za ni nasledujici polozku
> na druhy radek.
> Diky
> Jakub Ladman
> static char code menu1[3][16]= {"1. INFO         ",
>                                                    "2. Teplota      ",
>                                                    "3. Cas/Datum    "};
> static char code menu2[5][16]= {"1. Zobrazit     ",
>                                                    "2. Nizka teplota",
>                                                    "3. Vys.  teplota",
>                                                    "4. Krit. teplota",
>                                                    "5. Hystereze  "};
> static char code menu3[3][16]= {"1. Zobrazit     ",
>                                                    "2. Upravit cas  ",
>                                                     "3. Upravit datum"};
>


Tak jak je to zapsano, neni nikde ukoncovaci nula retezce. Printf bude
vypisovat za do okamziku nalezu prvni nuly
Cistsi je definovat pres pointr na char, a pole bez udani rozmeru.
Kompilator vse doplni k svemu obrazu
Pokud potrebujes pevnou sirku retezce, dopln mezery. Jinak neni vhodne
pouzivat PRINTF, je to fce s otevrenymi parametry
casove narocna a rozsahla i co do zabrani mista.


const char* menu1[] = { "Kocka   ",
                                      "Pes        ",
                                      "Kun       ", };

 printf("%s",menu1[mnu]);


M







Další informace o konferenci Hw-list