Как сделать прокручивающийся текст - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Есть какой-то массив данных, экран 144х168 пикселей, туда вся информация из массива не помещается. Как сделать чтобы это массив автоматически прокручивался? От начала и до конца и так без остановки, пока я не вызову следующий ответ из массива, он тоже должен прокручиваться

Решение задачи: «Как сделать прокручивающийся текст»

textual
Листинг программы
char    text[100500];/*сам текст*/
char    buff[21]; /*или сколько там символов на экран помещается*/
 
int i;
buff[20]=0;
 
 
while(1)
{
    for(i=0;i<100500-20;i++)
        { strncpy(buff,text+i,20);/*копирую в буффер часть основного текста*/
          puts(buff);/*выводим на дисплей*/
        }
 
    for(i=100500-19;i<100500;i++)
        {strncpy(buff,text+i,100500-i);/*копирую оставшуюся часть текста(кусок) хвоста*/
             strncpy(buff+100500-i,text,20-100500-i);/*добавляю к буферу кусок с начала текста*/
          puts(buff);/*выводим на дисплей*/
        }
}

Объяснение кода листинга программы

В этом коде есть два основных блока кода:

  1. Внутренний цикл while(1) выполняет копирование и вывод текста с помощью цикла for. Копирование происходит с помощью функции strncpy, которая копирует до 20 символов текста из массива text в буфер buff. Затем с помощью функции puts выводится содержимое буфера на экран.
  2. Внешний цикл for копирует оставшуюся часть текста (когда уже заполнено 100500 - 20 = 99500 символов) в буфер buff, а затем добавляет к нему кусок с начала текста с помощью функции strncpy. Затем содержимое буфера выводится на экран с помощью функции puts. Поскольку внешний цикл начинается с 100500 - 19 = 99481, это означает, что он копирует только один символ текста, начиная с позиции 99481 в массиве text. Внутренний цикл выполняет перебор оставшихся символов текста (99481 - 20 = 99461), поэтому он выводит все оставшиеся символы. Таким образом, этот код выводит текст с прокруткой, при этом каждый раз выводится 20 символов текста.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5
Похожие ответы