The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (C/C++)
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Printf цикл отступ, dcc0 (?), 13-Сен-16, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


10. "Printf цикл отступ"  +/
Сообщение от Asgard (?), 14-Сен-16, 19:32 
> В чистом Си как-то можно динамически изменять отступ в цикле при выводе
> на экран через printf?
> Допустим:
> int a = 1;
> a++;
> while (a < 10) {
> printf("d");
> }
> Вместо 12 как-то можно подставить переменную а?

Если я Вас правильно понял, то вы спрашиваете про ширину поля, в котором размещается выводимый аргумент. Ширина эта задаётся числом, располагаемым между знаком % и квалификатором аргумента. Если она не задана, то автоматически задастся поле, достаточное для вывода всех символов аргумента. Если недостаточна - будет так же расширена.
Например. printf ("[%d, %d]", 172, 9); выведет строку "[172, 9]"
A вот printf ("[], ]]", 172, 9); -- строку "[  172,     9]" (ширина поля 5 символов, выравнивание по правой стороне)
"Динамически" ширину поля можно указывать с помощью подстановочного квалификатора *. В этом случае фактическую ширину поля нужно передавать как один из соответствующих аргументов.
Например: printf ("%*d", w, var); В результате значение переменноый var будет выведено в поле шириной w
Между знаком % и шириной поля так же можно указать символ-заполнитель для поля.
Например, printf ("%#9d", 108) выдаст строку "######108"

Ответить | Правка | Наверх | Cообщить модератору

11. "Printf цикл отступ"  +/
Сообщение от dcc0 (?), 14-Сен-16, 20:07 
>[оверквотинг удален]
>     9]" (ширина поля 5 символов, выравнивание по
> правой стороне)
> "Динамически" ширину поля можно указывать с помощью подстановочного квалификатора *. В
> этом случае фактическую ширину поля нужно передавать как один из соответствующих
> аргументов.
> Например: printf ("%*d", w, var); В результате значение переменноый var будет выведено
> в поле шириной w
> Между знаком % и шириной поля так же можно указать символ-заполнитель для
> поля.
> Например, printf ("%#9d", 108) выдаст строку "######108"

Класс! Спасибо ОГРОМНОЕ! Вы все верно поняли. Надо было мне просто точнее сформулировать ... именно подставить квалификатор! Попробую сегодня!

Ответить | Правка | Наверх | Cообщить модератору

12. "Printf цикл отступ"  +/
Сообщение от dcc0 (?), 14-Сен-16, 20:30 
>[оверквотинг удален]
>> "Динамически" ширину поля можно указывать с помощью подстановочного квалификатора *. В
>> этом случае фактическую ширину поля нужно передавать как один из соответствующих
>> аргументов.
>> Например: printf ("%*d", w, var); В результате значение переменноый var будет выведено
>> в поле шириной w
>> Между знаком % и шириной поля так же можно указать символ-заполнитель для
>> поля.
>> Например, printf ("%#9d", 108) выдаст строку "######108"
> Класс! Спасибо ОГРОМНОЕ! Вы все верно поняли. Надо было мне просто точнее
> сформулировать ... именно подставить квалификатор! Попробую сегодня!

именно вот так

#include <stdio.h>


main () {

int i=0;
int w =1;
while(i !=5) {
i++;
printf("%*d\n", i, w);
    }
}

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру