Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Таблица в консоли  (Прочитано 2682 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн miksayer

  • Автор темы
  • Любитель
  • *
  • Сообщений: 59
    • Просмотр профиля
Таблица в консоли
« : 27 Марта 2010, 17:17:47 »
Нужно выводить данные в табличной форме. Хотелось бы, чтобы эта таблица была ровно отформатированной(наподобие той, что появляется при вызове ls -l). Как сделать такую таблицу? Желательно не прибегать к нестандартным библиотекам.

Оффлайн Protopopulus

  • Старожил
  • *
  • Сообщений: 1690
  • А чего вы так смотрите?..
    • Просмотр профиля
Re: Таблица в консоли
« Ответ #1 : 27 Марта 2010, 17:54:58 »
А в чем собрался делать-то?  Я, например, в FreePascal делал через самопальные функции.
Если ты владеешь знаниями, то и знания владеют тобой. (с) Protopopulus

Оффлайн miksayer

  • Автор темы
  • Любитель
  • *
  • Сообщений: 59
    • Просмотр профиля
Re: Таблица в консоли
« Ответ #2 : 27 Марта 2010, 18:05:28 »
забыл написать: gcc

Оффлайн axe

  • Старожил
  • *
  • Сообщений: 1203
    • Просмотр профиля
Re: Таблица в консоли
« Ответ #3 : 27 Марта 2010, 18:13:43 »
printf

Оффлайн hippi90

  • Активист
  • *
  • Сообщений: 433
    • Просмотр профиля
Re: Таблица в консоли
« Ответ #4 : 27 Марта 2010, 18:48:41 »
Я думаю, вам поможет ncurses. Хотя, что в вашем понимании нестандартная библиотека?

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Таблица в консоли
« Ответ #5 : 27 Марта 2010, 19:07:51 »
За gcc зачОт!
За printf +1.
Кое что все равно придется считать самомму.
На подобии ls тебе помогут исходники ls.

(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 27 Марта 2010, 19:12:38 от Yurror »

Оффлайн miksayer

  • Автор темы
  • Любитель
  • *
  • Сообщений: 59
    • Просмотр профиля
Re: Таблица в консоли
« Ответ #6 : 28 Марта 2010, 00:41:36 »
За gcc зачОт!
За printf +1.
Кое что все равно придется считать самомму.
На подобии ls тебе помогут исходники ls.
Так-с, а как тут с printf'ом быть? можно маленький пример?
А ls я для примера привел. Там табличка ровненькая, мне такую и надо :-)
Нестандартная библиотека в моем понимании - это то, что не входит в gcc. Просто пишу лабу и в универе просто может не оказаться нужного хедера.

Оффлайн Упс

  • Старожил
  • *
  • Сообщений: 3231
    • Просмотр профиля
Re: Таблица в консоли
« Ответ #7 : 28 Марта 2010, 01:25:24 »
#include <stdio.h>

int main(int argc, char** argv)
{
printf("%c  %c  %c\n", 'a','b','c');
printf("%d %d %d\n", 10,20,30);
return 0;
}
Не себе, и так сойдёт.  ;)
« Последнее редактирование: 28 Марта 2010, 01:34:58 от Упс »
xUbuntu 12.04

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Таблица в консоли
« Ответ #8 : 28 Марта 2010, 01:30:45 »
Как в ls чистым printf() не сделать. Максимум, что можно, это поставить \t в качестве разделителей ячеек. А по хорошему, нужно считать максимальную ширину по каждой ячейке. В общем, ради лабы овчинка выделки не стоит.

Оффлайн axe

  • Старожил
  • *
  • Сообщений: 1203
    • Просмотр профиля
Re: Таблица в консоли
« Ответ #9 : 28 Марта 2010, 01:51:20 »
Думаю, ты серьезно недооцениваешь printf.

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Таблица в консоли
« Ответ #10 : 28 Марта 2010, 03:06:42 »
Думаю, ты серьезно недооцениваешь printf.
Ну а конкретнее? Я даже и представить себе не могу, чтоб printf аккумулировал в себе данные, ради представления их далее в табличном виде. Этого не может быть.

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Таблица в консоли
« Ответ #11 : 28 Марта 2010, 05:08:53 »
Он ни чего не аккумулирует. Но вот указывать максимальную ширину поля, выравнивание текста в этом поле и какими символами забивать пустое место это запросто. Просто надо лезть в доку http://ru.wikipedia.org/wiki/Printf

 

Страница сгенерирована за 0.059 секунд. Запросов: 25.