Я делаю клиентскую базу данных на C, и я не мог найти способ, когда он перечисляет всех людей, когда консоль или окно заполнено, это приостанавливает печать на и отобразит сообщение типа «Нажмите клавишу, чтобы отобразить другую страницу», таким образом, как vi может показать следующую страницу одним нажатием ... Если кто-то знает, как быстро обходиться ...C: Пауза страница при заполнении
ответ
Вы можете попытаться выяснить, сколько строк имеет ваша консоль (в Linux: получить переменную $ROWS
из среды). Затем перед печатью попробуйте очистить консоль. Вы могли бы позвонить по телефону system("cls"); //Windows
или system("clear") //Linux
или использовать символ ASCII printf("\033[2J");
. Это гарантирует, что вы начнете в первой строке. Теперь вы можете просто использовать цикл как это:
for(int x = 0; x < TOTAL_ELEMENTS; x++)
{
if(x < COLS)
{
puts(rows[x]);
}
else
{
printf("Press [ENTER] to show the next line")
getchar();
printf("\033[F\r"); // Go to beginning of previous line to override (Not that portable)
puts(rows[x]);
}
}
В противном случае, вы можете использовать пейджер как more
(Windows/Linux) или most
/less
(Linux), как @Eugene предложил в своем комментарии
Размер вашего терминала может и изменится. Этого недостаточно. – tadman
Если я правильно помню, тогда переменная $ COLS будет обновляться всякий раз, когда изменяется размер. И если бы не было ncurses как альтернатива ... – mame98
Да, но вам нужно послушать сигнал и обновить соответственно. Это обманчиво сложно, поэтому «проклятия» существуют. Бросание кодов ANSI на 'printf' только доводит вас до сих пор. – tadman
- 1. Запуск и пауза при заполнении записей db
- 2. Ошибка при заполнении массива C#
- 3. Android Пауза перед загрузкой Страница
- 4. EXC_BAD_ACCESS при заполнении словаря (?)
- 5. StackoverflowException при заполнении массива
- 6. C# WPF: сбой при заполнении DataGrid
- 7. C malloc, использование памяти только при заполнении
- 8. Ошибка переполнения при заполнении вектора C++
- 9. ошибка диссектора Wireshark C при заполнении поддерева
- 10. остановка ajax при заполнении пробела
- 11. Пауза экрана при завершении программы в C
- 12. java.lang.NullPointerException при заполнении массива
- 13. Mongoose ошибка при заполнении
- 14. Дубликат при заполнении NSMutableArray
- 15. Concatenate строка при заполнении
- 16. Путаница при заполнении combobox
- 17. Обновить макет при заполнении
- 18. Ошибка при заполнении выпадающий
- 19. AccessViolationException при заполнении DataTable
- 20. проблема при заполнении кок
- 21. NullPointerException при заполнении массива
- 22. ArrayIndexOutOfBoundsException при заполнении RecyclerView
- 23. NullReferenceException при заполнении массива
- 24. Скрыть строки при заполнении ячейки
- 25. Консольная пауза в C++?
- 26. C++ Пауза Внешняя программа
- 27. C# Пауза/Стоп System.Diagnostics.Process
- 28. C# Пауза Выполнение программы
- 29. HTML-пауза при свертке окна
- 30. Управляющие эффекты при заполнении при копировании C++ POD
Redirect это 'more' в командной строке. –
да перенаправить его более или менее как ** $ yourprg | меньше ** –
Вопрос настолько расплывчатый, что даже не ясно, является ли это проблемой программирования. – Olaf