Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.64/105: Рейтинг темы: голосов - 105, средняя оценка - 4.64
3 / 3 / 0
Регистрация: 08.05.2010
Сообщений: 135
1

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

04.06.2011, 09:22. Показов 21791. Ответов 104
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ребят, подскажите как решить задачу.
Нужно перенести параметры функции printf() в самодельную ф-цию myfunk(). При условии если булева переменная Х==1. Если не равна 1, то не переносить.
Задача осложняется тем, что число параметров ф-ции может быть переменным.
Подскажите пожалуйста, буду очень признателен.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.06.2011, 09:22
Ответы с готовыми решениями:

Как перенести параметры с XP на 7
Не знаю в какой ветке разместить тему, то ли в XP, то ли в 7... Всё началось с того, что установив...

Передача ф-ции как параметра другой ф-ции
struct pupil{ char surname; int school; int answer; int num; } tmp, a; ...

Параметры printf
Здравствуйте дорогие форумчане ;) У меня есть вопрос по следующему куску кода. Решив по...

Динамические параметры printf()
Есть код printf("%5s <-- %14s\n", buffer0.c_str(), "n/a"); Что делать если я не знаю на этапе...

104
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
05.06.2011, 12:50 41
Author24 — интернет-сервис помощи студентам
Uklunok, Хех. А это смотря какая строка. У printf довольно много спецификаторов.
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
05.06.2011, 12:54 42
Лучший ответ Сообщение было отмечено как решение

Решение

Держи, я нагуглил это за тебя. Для embedded software. Есть вариант с stdarg и без stdarg. Я бы на твоем месте взял бы с stdarg.
http://www.menie.org/georges/embedded/. Там есть ссылка и на реализацию, поддерживающую плавающие числа.
3
3 / 3 / 0
Регистрация: 08.05.2010
Сообщений: 135
05.06.2011, 12:58  [ТС] 43
Огоого сколько тут кодаО_о
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
05.06.2011, 12:59 44
Uklunok, вот и разбирайся
1
3 / 3 / 0
Регистрация: 08.05.2010
Сообщений: 135
05.06.2011, 13:02  [ТС] 45
static int print(char **out, const char *format, va_list args ) - эта ф-ция получается будет вместо vprintf()?
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
05.06.2011, 13:03 46
Uklunok, там vprintf вообще никаким боком... А хотя да, можно и так сказать. Только не "вместо".
1
3 / 3 / 0
Регистрация: 08.05.2010
Сообщений: 135
05.06.2011, 13:05  [ТС] 47
а если я подключаю заголовок #include <stdio.h>
то билдер ругается на эту строку:
extern int putchar(int c);
[C++ Error] Unit1.c(6): E2040 Declaration terminated incorrectly

Добавлено через 56 секунд
И про код господина fasked можно забыть чтоли? но он такой хороший
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
05.06.2011, 13:09 48
Uklunok, если у тебя нету vprintf - то да, можно забыть.
1
3 / 3 / 0
Регистрация: 08.05.2010
Сообщений: 135
05.06.2011, 13:13  [ТС] 49
Ну здесь же всеровно сообщения выводятся через printf()....
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
05.06.2011, 13:14 50
Цитата Сообщение от Uklunok Посмотреть сообщение
а если я подключаю заголовок #include <stdio.h>
то билдер ругается на эту строку:
extern int putchar(int c);
А ты его не подключай.

Uklunok, там функция printf - своя, а не стандартная.
1
3 / 3 / 0
Регистрация: 08.05.2010
Сообщений: 135
05.06.2011, 13:16  [ТС] 51
ААААА, всё понял, поменял название ф-ции на printf1(), и всеровно сообщения выводятся, нормально, значит можно полностью этот код и вставить.
Не подскажите в билдере ф-цию чтобы консоль не закрывалась, типа getch(), хочу глянуть достоверные данные выводятся...
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
05.06.2011, 13:17 52
system("pause"); из stdlib.h
1
3 / 3 / 0
Регистрация: 08.05.2010
Сообщений: 135
05.06.2011, 13:30  [ТС] 53
Nameless One, Спасибо большое. Чтобы я без тебя делал. Выручил очень.
Сейчас попытаюсь вставить код в проект для МК

Добавлено через 8 минут
А как быть если #include "stdio.h" всё-таки нужен?
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
05.06.2011, 13:32 54
Uklunok, тогда нужно сделать так, чтобы имена объявляемых тобой функций не конфликтовали с именами функций из stdio.h
0
3 / 3 / 0
Регистрация: 08.05.2010
Сообщений: 135
05.06.2011, 13:33  [ТС] 55
Просто эта ф-ция
stdioAttach(hUart); без не её похоже нельзя
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
05.06.2011, 13:35 56
Uklunok, какой у нее прототип?
0
3 / 3 / 0
Регистрация: 08.05.2010
Сообщений: 135
05.06.2011, 13:48  [ТС] 57
Ок, получилось, щас буду пробовать

Добавлено через 1 минуту
Цитата Сообщение от Nameless One Посмотреть сообщение
Uklunok, какой у нее прототип?
Если интересно, то вот:

Syntax
int stdioAttach(VOS_HANDLE h)

Description
Attaches an I/O interface handle stdio streams, stdin, stdout and stderr. All three streams are attached to the same driver.
Cannot be used with a handle to the FAT file system driver or any driver that requires a structure to be passed in it's read() or write() handlers.

Parameters
h
Handle for stream operations.

Return Value
Always returns zero.

Добавлено через 7 минут
Плохи дела, компилятор виснет
Vinc.exe failed with return code 3221225477
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
05.06.2011, 13:50 58
если тебе нужна из stdio.h только эта функция, то напиши "extern int stdioAttach(VOS_HANDLE h);" и не подключай stdio.h

Добавлено через 28 секунд
Uklunok, а ошибок он никаких не пишет?
0
3 / 3 / 0
Регистрация: 08.05.2010
Сообщений: 135
05.06.2011, 13:54  [ТС] 59
ругается на эту строку:
C
1
extern int my_putchar(int c);
[VinC.exe] : src\Runtime.c line 45: (error) C1404 too many types in declaration
типа двумя типами инициализирована ф-ция

Добавлено через 2 минуты
убрал int вроде скомпилил без ошибок, ща остальные ф-ции добавлю
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
05.06.2011, 13:56 60
Uklunok, попробуй убрать extern, а int оставь.
0
05.06.2011, 13:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.06.2011, 13:56
Помогаю со студенческими работами здесь

Форматы и параметры printf/scanf
Задали вопрос что если в выводе : 1) форматов&gt;переменных 2)переменных&gt;форматов Я делал...

Как припаять PLS на самодельную плату
Возник вопрос: как припаять PLS разъём на самодельную плату? Примерно как здесь ...

Не могу понять как исправить ошибку Warning: printf() [function.printf]: Too few arguments in Z:\home\ksards.ru\www\id\1.php on line 76
Помогите связать бд с сайтом я новичок в этом вот код php &lt;?php do { printf(&quot;&lt;div...


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru