Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/29: Рейтинг темы: голосов - 29, средняя оценка - 4.59
0 / 0 / 0
Регистрация: 22.08.2014
Сообщений: 81

Как написать свою функцию типа printf?

19.06.2015, 23:44. Показов 6061. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!

Прошу помочь в непонятном для меня задании. Какой должна быть функция, чтоб при ее вызове (в следующеем виде)

function("int=$i, bool=$b, float=$f, char=$c", 6, false, 8.5, 'name') мы получили следующее на экране:

int=6;
bool=false;
float=8.5;
char=name;

Буду очень признательна за подсказку хотя бы. И да..я знаю, что нужно использовать строки.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.06.2015, 23:44
Ответы с готовыми решениями:

Как написать свою функцию atof()
Как написать свою функцию atof()?

Подскажите как написать свою функцию корня
Для лабораторной работы надо написать свою библиотеку функций. Не могу разобраться в своём функции корня #include <iostream> ...

Как написать свою функцию std::replace?
В STL есть функция std::replace. Как написать свою? У меня не получается template < typename T, class Container<T> > void...

8
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
19.06.2015, 23:57
Должна быть обычная функция с переменным числом параметров (опорная точка).
0
0 / 0 / 0
Регистрация: 22.08.2014
Сообщений: 81
20.06.2015, 00:02  [ТС]
castaway, а как быть с разными типами данных?
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
20.06.2015, 00:07
Цитата Сообщение от Lena86 Посмотреть сообщение
castaway, а как быть с разными типами данных?
C++
1
2
3
char c = va_arg( vl, char );
int i = va_arg( vl, int );
float f = va_arg( vl, float );
0
What a waste!
 Аватар для gray_fox
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
20.06.2015, 00:13
Цитата Сообщение от Lena86 Посмотреть сообщение
а как быть с разными типами данных?
Разбираете форматный спецификатор (в данном случае начинается с '$') и в с соответствии с ним вызываете va_arg с нужным типом.
0
0 / 0 / 0
Регистрация: 22.08.2014
Сообщений: 81
20.06.2015, 00:18  [ТС]
gray_fox,
Цитата Сообщение от gray_fox Посмотреть сообщение
Разбираете форматный спецификатор (в данном случае начинается с '$') и в с соответствии с ним вызываете va_arg с нужным типом
а можно пример?

Добавлено через 1 минуту
я так понимаю, что функция будет типа void?
0
What a waste!
 Аватар для gray_fox
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
20.06.2015, 00:29
Цитата Сообщение от Lena86 Посмотреть сообщение
я так понимаю, что функция будет типа void?
Как хотите, std::printf например возвращает количество записанных символов или отрицательное значение, если произошла ошибка.
Цитата Сообщение от Lena86 Посмотреть сообщение
а можно пример?
Допустим спецификатор всегда однобуквенный (вроде $i; printf, к слову, не такой), тогда просто берёте следующий символ после '$' и в зависимости от него выводите аргумент с соответствующим форматированием:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
switch (symbol) {
case 'i':
   int arg = va_arg(vi, int);
   // выводим arg как int
   break;
case 'b':
   bool arg = va_arg(vi, bool);
   // выводим arg как bool
   break;
// ...
default:
   // нет такого типа, сообщаем об неверном спецификаторе типа
}
0
0 / 0 / 0
Регистрация: 22.08.2014
Сообщений: 81
20.06.2015, 00:29  [ТС]
castaway, спасибо за помощь
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
20.06.2015, 12:05
В качестве примера можешь взять эту реализацию Как перенести параметры из ф-ции printf() в самодельную

Добавлено через 1 минуту

Не по теме:

Хоть где-то есть ещё грамотные преподаватели, которые дают реально полезные задачи

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.06.2015, 12:05
Помогаю со студенческими работами здесь

Как написать свою функцию =МАКСЕСЛИ
Привет, Ребята помогите, кто знает, с написанием функции VBA =МАКСЕСЛИ , тоже самое что и =СУММЕСЛИ, только не суммировать нужно, а...

Как написать свою функцию вывода в консоль?
наверно как-то с GetStdHandle(STD_OUTPUT_HANDLE);

Написать свою функцию set_union
Преподаватель не разрешает использовать готовые функции типа set или set_union. Требует написать свою функцию, основываясь на шаблоне. ...

Написать свою функцию Random()
Кто знает,как написать свой рандом на паскале? Ф-кция random(randomize) меня не устраивает:)

Не могу написать свою функцию посчета ячеек по условиям.
Что я делаю не так? Public Function KolTochek(nameTT As Range, NTipaTT As Range, Postavchik As Range, _ SvodNTipaTT As Integer,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru