{% else-1 %}
Обновить | Подписаться | Поднять тему
Чтобы выполнить действие авторизируйтесь или пройдите регистрацию на сайте.
1. [автор] (15 июл 2016, 21:57) [0/0] [0] [отв] [спам] [под] +1 | -1

Всем доброго времени суток. Написать программу, которая реализует функцию с неограниченным
количеством параметров, организовывающую форматированный вывод на
экран. Задание выполнил, а вот как бы сделать чтоб если спецификаторов указанно больше а значений меньше то чтоб не выводило ошибку о том что память не может быть а прочитана, а чтоб выводило сам спецификатор. Вот пример
// myPrintf("Simple example: {i} + {i} = {i} {i} {i}", 2, 3, 2 + 3);
// Simple example: 2 + 3 = 5
А вот сама функция
void myPrintf(char *formatString, ...)
{

va_list parametrs;
int count = strlen(formatString);
va_start(parametrs, formatString);

do
{

while(*formatString!='{' && *formatString!='}' && *formatString!='\0')
cout<< *(formatString++);

++formatString;

switch (*formatString)
{

case 'i':
cout << va_arg(parametrs, int);
formatString++;
break;

case 'd':
cout << va_arg(parametrs, double);
formatString++;
break;

case 's':
cout << va_arg(parametrs, char*);
formatString++;
break;

}

}while(*formatString != 0);


va_end(parametrs);


}

  • 1 из 1
Чтобы писать сообщения авторизируйтесь или пройдите регистрацию на сайте.
Подписаны: 1
Скачать тему | Файлы темы | Фильтр сообщений