URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9385
[ Назад ]

Исходное сообщение
"printf %s"

Отправлено pavlinux , 14-Фев-12 04:38 
Умеет ли printf() такое ?

printf("ADDR: %s | ACCEPT\n", inet_ntoa(sai.sin_addr));

но чтоб строки выходили вот так выровненные

ADDR: 192.168.1.2     | ACCEPT
ADDR: 10.8.21.2       | ACCEPT
ADDR: 122.228.321.211 | ACCEPT
ADDR: 1.1.1.2         | ACCEPT
ADDR: 1.228.1.22      | ACCEPT
ADDR: 122.228.321.211 | ACCEPT

по дефолту будет

ADDR: 192.168.1.2 | ACCEPT
ADDR: 10.8.21.2 | ACCEPT
ADDR: 122.228.321.211 | ACCEPT
ADDR: 1.1.1.2 | ACCEPT
ADDR: 1.228.1.22 | ACCEPT
ADDR: 122.228.321.211 | ACCEPT

можно сделать так

   printf("ADDR: '%'15s | ACCEPT\n", inet_ntoa(sai.sin_addr));
                 ^^^ тут слитно, без ' '

тогда будет

ADDR:     192.168.1.2 | ACCEPT
ADDR:       10.8.21.2 | ACCEPT
ADDR: 122.228.321.211 | ACCEPT
ADDR:         1.1.1.2 | ACCEPT
ADDR:      1.228.1.22 | ACCEPT
ADDR: 122.228.321.211 | ACCEPT

Что тоже не феншуй...


Содержание

Сообщения в этом обсуждении
"printf %s"
Отправлено elvenic , 14-Фев-12 05:39 
> Умеет ли printf() такое ?

А если попробовать "%-15s"?



"printf %s"
Отправлено pavlinux , 14-Фев-12 05:44 
>> Умеет ли printf() такое ?
> А если попробовать "%-15s"?

Блин, я уже закрыл всё... вечером испробую...

---

Пля... во я лох, ... Кериган & Ритчи, стр. 166  


"printf %s"
Отправлено elvenic , 14-Фев-12 05:46 
>>> Умеет ли printf() такое ?
>> А если попробовать "%-15s"?
> Блин, я уже закрыл всё... вечером испробую...
> А где нарыл доку по этой фичи?

man 3 printf

see section 'The flag characters'



"printf %s"
Отправлено pavlinux , 14-Фев-12 05:52 
>>>> Умеет ли printf() такое ?
>>> А если попробовать "%-15s"?
>> Блин, я уже закрыл всё... вечером испробую...
>> А где нарыл доку по этой фичи?
> man 3 printf
> see section 'The flag characters'

А куда я смотрел? :)

-      The converted value is to be left adjusted on the field boundary.  
(The default is right justification.)  Except for n conversions, the
converted value is padded on the right with blanks, rather than on the
left with blanks or zeros.  A - overrides a 0 if both are given.

---

Мерси!