Могу ли я использовать printf с PSTR? - PullRequest
0 голосов
/ 14 октября 2019

Я пытаюсь создать игру на C, которая будет печатать на puTTY и управляться микроконтроллером. Таким образом, в основном, чтобы напечатать вещи, у меня есть функция под названием move_cursor, чтобы добраться до места, которое я хочу напечатать, и затем я использую PSTR, чтобы напечатать это.

//to move
void move_cursor(int x, int y) {
    printf_P(PSTR("\x1b[%d;%dH"), y, x);
}

//to print things
printf_P(PSTR("Score: "));

Мне довольно просто просто напечататьтакие вещи, как «Игра окончена», когда мне нужно, но я понял, что немного сложнее, когда мне нужно напечатать что-то, что постоянно обновляется, например, счет. Я попытался использовать printf, так как у меня есть переменная с именем score, которую я могу подставить. Но похоже, что она не работает так же для PSTR. Что именно я могу сделать, если я пытаюсь напечатать что-то на терминале с частой, которая часто обновляется?

1 Ответ

1 голос
/ 14 октября 2019

Вы можете заменить текст в левом углу, используя:

#define gotoxy(x, y) printf("\033[%d;%dH", x, y)

над основной функцией. Затем используйте:

gotoxy(0, 0);
printf("%d",/*Some number*/);

, чтобы перейти в левый угол и распечатать свой счет.

...