Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Можно даже так "%-40.33s" - в поле шириной 40 символов будет печататься максимум 33 символа из данной строки с левым выравниванием. Можно и ещё забористее (+)

Отправлено ReAl 21 марта 2009, г. 22:36
В ответ на: Как ограничить длину выводимой строки в printf если там нет нуля ? %33s не работает. отправлено пользователем Vladimir Ljaschko 21 марта 2009, г. 17:33

Можно и ширину поля, и точность под звёздочку дать и передавать число, причём отрицательное число работает "как положено"
#include <stdio.h>

const char s[] = "123456";

int main()
{
for( int width = -15; width <= 15; width += 30)
for( int maxlen = 1; maxlen <= 7; ++maxlen)
printf( "'%*.*s'\n", width, maxlen, s);
return 0;
}


'1              '
'12 '
'123 '
'1234 '
'12345 '
'123456 '
'123456 '
' 1'
' 12'
' 123'
' 1234'
' 12345'
' 123456'
' 123456'


Составить ответ | Вернуться на конференцию.

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 93:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru