Форум программистов, компьютерный форум CyberForum.ru

Как перенести параметры из ф-ции printf() в самодельную - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Распечатать список учеников музыкальной школы, которые учатся играть на скрипке http://www.cyberforum.ru/cpp-beginners/thread312657.html
Распечатать список учеников музыкальной школы, которые учатся играть на скрипке. Указать также, сколько лет они занимаются музыкой и принимали ли участие в каких-либо конкурсах.
C++ Две задачи СТЕК в динамической памяти Здраствуйте уважаемые программисты помогите пожалуйста решить две задачи: 1.Дан файл содержащий текст на русском языке. Файл считывается в СТЕК в динамической памяти. Найти и вывести в другой файл все слова, в которых гласные буквы образуют неубывающую последовательность символов. Один символ не считается неубывающей последовательностью. 2.Например: заметить (а – е - и), добро (о-о) …... http://www.cyberforum.ru/cpp-beginners/thread312651.html
C++ 0xчисло
0x - это десятичная система исчисления? И как это называется, когда пишут int a = 0x5? Как правильно это(0x) называется? Какие выглядят другие системы исчисления?
как из вектора удалить отрицательные числа C++
Создать вектор, заполнить его случайными целыми числами в интервале от -10 до 10. Вывести в ListBox. Затем удалить из него все отрицательные элементы и вывести еще раз вектор в ListBox. moja programma vector<int>vec; srand(time(NULL)); for(int i=0,i!=10,i++){ int a=rand()%20-10; vec_push_back(a); listBox1->item->Add(vec);}
C++ строки. что-то тут не так http://www.cyberforum.ru/cpp-beginners/thread312607.html
вот код //Программа удаления из строки символов '0..9' #include<iostream> // заголовыочный файл с описаниями функций ввод\вывод #include<conio.h> // заголовочный файл для создания текстового интерфейса в режиме MS-DOS #include <string> // заголовочный файл для класса string int main() {
C++ Builder БД ADOQuery и Edit Доброго времени суток, форумчане! Прошу вашей помощи ибо гугл и яндекс уже прячутся от меня в попытках отыскать решение вопроса... Нужно через запрос(ADOQuery) вывести значение из бд(SQL) в поле Edit. Что делаю я: кидаю адоконекшн, настраиваю, кидаю адоквери, настраиваю конект через адоконекшн, в стрингах пишу Select MAX(Z_ID) as MaxZid from zayavki собственно в обработчике этого поля(к... подробнее

Показать сообщение отдельно
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16847 / 5268 / 323
Регистрация: 30.03.2009
Сообщений: 14,173
Записей в блоге: 26
05.06.2011, 15:55     Как перенести параметры из ф-ции printf() в самодельную
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
А во-вторых, надо знать, как НА САМОМ деле реализуются стандартные средства...
То, что написано - это НЕ "как на самом деле реализуются", а "как реализуются в программных соглашениях для архитектуры i386". Перенеси этот код на другую платформу - и он почти наверняка отработает неправильно.

Цитата Сообщение от ValeryLaptev Посмотреть сообщение
Все зависит от конкретной ситуации...
Гавнокод в большинстве случаев тоже является следствием конкретной ситуации

Цитата Сообщение от ValeryLaptev Посмотреть сообщение
Ибо в-третьих, профи придумали это механизм для себя любимых. Если этого не пробовать, как становиться профи...
У меня нет претензии к статье как таковой. У меня есть претензии к тому, что нигде ни разу не написано, что код не переносимый и так писать код не надо. И как-то неявно проскальзывает, что va_arg'и придумали чисто ради удобства, хотя на самом деле их придумали в первую очередь чтобы разные программные соглашения накрыть универсальным интерфейсом (чтобы коды были переносимыми)

Цитата Сообщение от ValeryLaptev Посмотреть сообщение
Вы про реализацию таблицы виртуальных функций помните? Указатель на указателе сидит, и указателем погоняет!
Только вот никто не пишет кодов таким образом, чтобы через поинтерную арифметику выковыривать из экземпляра класса таблицу виртуальных функций и конечный адрес метода

Добавлено через 1 минуту
Цитата Сообщение от Uklunok Посмотреть сообщение
Залез в <stdio.h> и прототипа ф-ции vprintf() не нашёл
vfprintf есть? В данном случае тебе покатит только функция, начинающаяся на "v" (от "vararg"), ибо она принимает указатель на стек, который в общем случае неизвестно как реализован, но получение этого значения накрыто интерфейсом va_start

Добавлено через 5 минут
Цитата Сообщение от Uklunok Посмотреть сообщение
Значит нужно сделать так, чтобы ф-ция myprintf() вызывала из библиотеки stdio ф-цию printf(), вставляла туда нужные нам параметры для вывода и вывела их на экран
В такой постановке задача невыполнима, потому что функции с переменны числом параметров можно вызвать только напрямую. Никакие функции-прокладки здесь уже не канают. Чтобы можно было делать прокладки, сделаны функции типа vprintf (а сам printf внутри себя так же вызывает vprintf). Если у тебя этой функции нет (ну или нет vfprintf, vsprintf, и т.п.), то единственный способ сделать твою задачу - это ручками написать весь код printf'а. Хотя, если речь идёт о микроконтроллере, то тебе нужен будет ограниченно-кастрированный вариант printf'а, в котором можно будет ограничиться самыми простыми описателями %s, %c, %d, %x
 
Текущее время: 18:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru