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

Как создать va_list для _vsntprintf ? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Обработка исключений http://www.cyberforum.ru/cpp-beginners/thread22975.html
Как сделать обработку исключения так, чтобы, если, например, вводим количество координат больше, чем можно, программа предлагала, или выйти, или попробовать ввести ещё раз. Я пробовал с помощью switch, но там если ввести первый раз неправильно, то он запускается, если ещё раз неправильно, то уже обработка исключения не идёт, то есть, нужно под каждый неправильный ввод писать новый ввод объекта и...
C++ Builder Подскажите рабочий пример по использованию TThread Если Вам не трудно, дайте ссылку или скиньте тут рабочий пример любого воздействия на форму из дочернего потока. На сколько понимаю используется класс TThread? http://www.cyberforum.ru/cpp-beginners/thread22967.html
C++ надо программу, в которой задача состоит в том, чтобы найти точку на двумерной сетке
Точка, безусловно, определяется координатами. Сетка должна иметь определенный размер, например, от 100 до 100 меш. Программа должна в начале своей деятельности выбирать точку на сетке(случайно), и задача пользователя будет,выбирать точку на сетке координат. В ответ, программа должна найти расстояние между точками и вывести на екран. Ето будет проиcходить до тех пор пока пользователь не угадает...
C++ Сортировка массива структур
Имеется массив структур, который необходимо отсортировать по числовому ключу. Я написал код, но он не работает, поэтому просьба указать на ошибку. #include <stdio.h> #include <stdlib.h> int i; typedef struct {
C++ По матрице и заданному числу построить вектор http://www.cyberforum.ru/cpp-beginners/thread22942.html
По матрице размерностью m*n и заданному числу построить вектор, элемент которого равен 1, если наибольший элемент соответствующей строки матрицы не меньше заданного числа, и 0 - в остальных случаях. Определить моду для элемента вектора. Считать m<=10, n<=20. Вот тут тоже спрашивали http://www.cyberforum.ru/cpp/thread18317.html , но так и не помогли)
C++ В квадратной матрице найти максимальный элемент для каждой строки 4. В квадратной матрице с числом строк не более 15 найти максимальный элемент для каждой строки, подсчитать сумму найденных элементов и выбрать минимальный из них. Формат числа ±цц. подробнее

Показать сообщение отдельно
alex63
Сообщений: n/a
22.02.2009, 19:50     Как создать va_list для _vsntprintf ?
Все работает. Получилась такая функция
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
static int ads_ak_format(void)
{
        struct resbuf  *rb=acedGetArgs () ;             
        // TODO: add your code here
 TCHAR format[512];
 TCHAR buff[1024]; 
 int sizeofVa_list=0;
  
if(rb == NULL) return RTNORM;
 
if (rb->restype == RTSTR) wcscpy(format,rb->resval.rstring);
  else {  acdbFail(_T("\n first  Argument should be an string. Example \"A= %s s=%d\""));
       return (RTERROR); 
  }
 rb=rb->rbnext; 
struct resbuf *p=rb;
sizeofVa_list=sizeofListVal(p);
const char *m=(char *)malloc(sizeof(sizeofVa_list));// +   sizeof(char));
void *bm=(void *)m;
while (rb != NULL) 
{
switch(rb->restype)
   {
case RTREAL: 
    (*(ads_real*)m)=rb->resval.rreal; //puts the next value
    m += sizeof(ads_real);  //(double); // move forward again
    break;
case RTSHORT :
    (*(int*)m)=(int)rb->resval.rint; //puts the next value      
    m += sizeof(int);// move forward again      
    break;
case RTLONG :
    (*(int*)m)=(int)rb->resval.rlong; //puts the next value
    m += sizeof(int);
    break;
case RTSTR :
    (* (TCHAR **)m)=rb->resval.rstring;
    m += sizeof(TCHAR *);
    break;
default :
    acutPrintf(_T("\n only type {double int string} ."));   
    break;
     }   
    rb=rb->rbnext;
   }// while
int ii=(_tcslen(buff)+1)*sizeof(TCHAR);
vswprintf(buff,ii,format,(va_list)bm);
acedRetStr(strsave(buff));
acutRelRb(rb);
free(bm);
return (RSRSLT) ;
    }
Пользователь получил красную карточку за это сообщение.
 
Текущее время: 23:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru