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