Печать строк по диагонали вместо слева - PullRequest
0 голосов
/ 24 марта 2019

Я хочу напечатать огромный массив строк, так сказать, страницу за страницей, но чтобы пропустить страницы, мне не нужно было нажимать ввод.Единственным разумным решением, которое я нашел в Интернете, было использование "stty raw".Тем не менее, я в конечном итоге с этим кодом

void printAux(char** Strings, int init, int fim){
  system("clear");
  for(int i = init; i < fim; i++){
    printf("%s\n", Strings[i]);
  }
}

void printStrings(char** Strings, int tam){

  int j = 0;
  int i = 0;
  char c;

  system("stty raw");
  printAux(Strings, 0, (tam >= 20 ? 20 : tam));
  while((c = getchar()) != 'q'){
    if(c == 'a'){
      i-= 20;
      i = (i < 0 ? 0 : i);
    }
    else if (c == 'd'){
      i += 20;
      i = (i > tam ? i - 20 : i);
    }
    printAux(Strings, i, (i + 20 >= tam ? tam : i + 20));
  }

  system("stty cooked");

}

Он печатает их очень хорошо, но он печатает их так, как это

1
 2
  3
   4
    5
     6
      7
       8
        9
         10
           11
             12
               13
                 14
                   15
                     16
                       17
                         18
                           19
                             20

Строки начинают печатать в строке, где последнийодин закончился.Я бы хотел, чтобы все было слева от экрана.Любая помощь будет очень ценится

1 Ответ

0 голосов
/ 24 марта 2019

Решение было заменить

printf("%s\n", String[i]);

на

printf("%s\r\n", String[i]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...