информационная безопасность
без паники и всерьез
 подробно о проекте
Страшный баг в WindowsЗа кого нас держат?Сетевые кракеры и правда о деле Левина
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Критическая уязвимость UEFI позволяет... 
 Японский хостинг попросил клиентов... 
 Компрометация eMudhra вынудила... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Спасибо, vfprintf() то что надо! 20.11.01 06:23  Число просмотров: 1262
Автор: coldfire Статус: Незарегистрированный пользователь
<"чистая" ссылка>
прототип vfprintf():
int vfprintf( FILE *stream, const char *format, va_list argptr );

и тогда все просто:

void MyClass::myfun(char *format, ...)
{
va_list list;
va_start(list, format);

vfprintf(file, format, list);

va_end(list);
}
<programming>
[C++] передача переменного числа параметров в функцию 19.11.01 13:45  
Автор: coldfire Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Мне нужно из одной финкции с переменным числом параметров вызвать вызвать другую и передать ей те-же параметры.

Например

void MyClass::my_fun(char *format, ...)
{
//вызов одной из стандартных функций
//c переменным числом параметров
fprintf(file, format, /*тут как?*/);
}

Кто не помнит напомню, что с такими функциями работают при помощи va_start, va_arg, va_end

Была у меня идея:
va_list list;
va_start(list, format);
fprintf(file, format, list);

Ясно дело из нее ничего не вышло, list восприняля как один конкретный указатель.

Кто-нибудь что-нибудь умное может сказать?
posmotri f-ii fprintf() i vfprintf() , esli ne oshibajus, i togda vse poluchitsya 19.11.01 13:58  
Автор: kabanchik Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Спасибо, vfprintf() то что надо! 20.11.01 06:23  
Автор: coldfire Статус: Незарегистрированный пользователь
<"чистая" ссылка>
прототип vfprintf():
int vfprintf( FILE *stream, const char *format, va_list argptr );

и тогда все просто:

void MyClass::myfun(char *format, ...)
{
va_list list;
va_start(list, format);

vfprintf(file, format, list);

va_end(list);
}
Извини, поторопился, 19.11.01 13:54  
Автор: PS <PS> Статус: Elderman
Отредактировано 19.11.01 14:24  Количество правок: 1
<"чистая" ссылка>
сразу и не понял. С перемеными параметрами работают так:

void a(int j, ...)
{
int* pj = &j;

int n = *(pj+1);
int m = *(pj+2);

printf( "%ld, %ld", n, m );
}

void main( )
{
a( 4,7,4);
}

Но тебе не извесно, сколько и что тебе передают.
Я бы на твоем месте пропарсил входную строку, и узнал, что передали. А дальше, как в приведеном тексте.
1





Рейтинг@Mail.ru


  Copyright © 2001-2026 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach