singlepost

Меню в Си << На главную или назад  

Может кто знает подскажет!!!!! Как сделать нижнюю часть меню плавающей(что б она опускасаль) по мере заполнению команд в терминале!!!!

#define CLS printf("\033[2J");
#define LOCATE(z,s) printf("\033[%d;%dH", z, s);

int main(int argc, char** argv) {

char head[] =
"--------------------------------------------------\n"
" Меню \n"
"--------------------------------------------------\n";

char foot[] =
"----------------------------------------------------\n"
" бля бля - команды \n"
" бля бля - команды \n"
"----------------------------------------------------\n";

CLS; LOCATE( 0, 0); printf("%s", head); //CLS стирает всё в терминале,LOCATE ставить курсор в заданую позицию
LOCATE (25,0 ); printf("%s", foot);
LOCATE( 5,0);
}

3 ответов в теме “Меню в Си”

  1. 1
    Леонид Максимов ответил:

    просто печатать футер все ниже и ниже по мере добавления команд. а вообще, esc-последовательности работают далеко не на всех терминалах.

  2. 2
    Алёна Вильгельм ответил:

    не подскажешь как это в коде написать?

  3. 3
    Леонид Максимов ответил:

    каждый раз, когда выводишь новую команду, пишешь LOCATE (Y,0 ); printf("%s", foot); где Y определяется количеством уже выведенных команд. учтите, что длины выводимых команд должны быть достаточными, чтобы затереть футер (добавляйте к ним нужное число пробелов, например).

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.