Вопрос № 106653: Здравствуйте эксперты,
Читал на досуге Стивена Прата, у него есть задачка :
Напишите программу, которая запрашивает имя и выполняет с ним следующие действия :
Печатает его в поле шириной , на три символа превышающем длину имени.
Со сп...
Вопрос № 106.653
Здравствуйте эксперты,
Читал на досуге Стивена Прата, у него есть задачка :
Напишите программу, которая запрашивает имя и выполняет с ним следующие действия :
Печатает его в поле шириной , на три символа превышающем длину имени.
Со спецификаторами преобразования в printf знаком , как вычислить длину имени тож понятно , прибавить 3 не проблема.
Спецификатор в данном случае выглядит %s , задать ширину поля %10s ... а вот как туда воткнуть %d с +3 ...
Помогите разобраться ...
Отправлен: 24.10.2007, 22:38
Вопрос задал: Mike V Dao (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 5)
Отвечает: Воробьёв Алексей Викторович
Здравствуйте, Mike V Dao!
Если в качестве ширины указана звёздочка, ширина поля указывается в списке аргументов перед значением для вывода (например, printf( "%0*5x", 8, 15 ); выведет текст 0000000f).
Это вырезка из статьи на http://ru.wikipedia.org/wiki/Printf
Ответ отправил: Воробьёв Алексей Викторович (статус: 7-ой класс)
Ответ отправлен: 25.10.2007, 06:06 Оценка за ответ: 5 Комментарий оценки: Спасибо !
решил проблему вот так :
#include "stdafx.h"
#include "string.h"
int main()
{
char name[40];
printf("Plz enter the number :");
scanf("%s",&name);
printf("\\"%- *s\\"", strlen(name)+3, name);
return 0;
}
Отвечает: Sergey A. Wedensky
Здравствуйте, Mike V Dao!
Можно строку формата сначала сформировать, а потом использовать: