Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

vfprintf - vsprintf

[ Оглавление ]
               VFPRINTF - VSPRINTF
                   
            #include <stdio.h>
            #include <varargs.h>    требуется  для совместимости с
                                    UNIX V.
            
            #include <stdarg.h>     требуется для совместимости со
                                    стандартом ANSI C.
            
            int vfprintf(stream, format-string, arg-ptr);
            int vprintf(format-string, arg-ptr);
            int vsprintf(buffer, format-string, arg-ptr);
            
            FILE *stream;            указатель на  структуру  типа
                                     FILE.
            char *buffer;            память  для  хранения резуль-
                                     тата
            char *format-string;     строка управления форматом
            va_list arg-ptr;         указатель   на  список  аргу-
                                     ментов.
               Описание.
            
               Функции vfprintf, vprintf, vsprintf форматируют  и  выводят
         данные соответственно в поток stream, поток стандартного вывода и
         буфер  buffer.  Эти  функции  похожи  на  свои  двойники fprintf,
         printf, sprintf, но используют  указатель  на  список  аргументов
         вместо списка аргументов.
               Format-string  имеет ту же самую форму и функцию, что и ар-
         гумент строки формата для функции printf; (см.  описание  функции
         printf).
               Параметр   arg-ptr   имеет   тип  va_list,  определяемый  в
         <vararg.h> и <stdarg.h>. Этот параметр указывает на список  аргу-
         ментов, которые преобразовываются и выводятся согласно соответст-
         вующим спецификациям формата в format-string.
            
               Возвращаемое значение.
            
               Возвращаемым  значением является количество выведенных сим-
         волов.
               См.  также  fprintf,  printf,  sprintf,   va_arg,   va_end,
         va_start.
            
               Пример:
            
               В качестве примера приводится листинг программы, использую-
         щей <varargs.h> для совместимости с UNIX V.
            
            #include <stdio.h>
            #include <varargs.h>
            
            main ()
            {
         
            int line = 1;
      
            char *filename = "EXAMPLE";
            .
            .
            .
            error("Error: line %d, file %s\n", line, filename);
            .
            .
            .
            error("Syntax error\n");
            }
            
            error(va_alist);
            va_dcl;
            {
               char *fmt;
               va_list arg_ptr;
            
                 va_start(arg_ptr);
               /* arg_ptr сейчас указывает на строку формата */
                 fmt = va_arg(arg_ptr, char *);
               /* arg_ptr сейчас указывает на аргумент после строки форма-
         та */
                 vprintf(fmt, arg_ptr);
                 va_end(arg_ptr);
            }
            
            На выходе:
            
            Error: line 1, file EXAMPLE
            Syntax error.
            
               Ниже  приводится  аналогичная программа, перезаписанная для
         совместимости со стандартом ANSI C.
            
            #include <stdio.h>
            #include <stdarg.h>
            
            main ()
            {
            int line = 1;
            char *filename = "EXAMPLE";
            .
            .
            .
            error("Error: line %d, file %s\n", line, filename);
            .
            .
            .
            error("Syntax error\n");
            }
            
            error(fmt);
            char *fmt;
         
            {
               va_list arg_ptr;
               va_start(arg_ptr, fmt);
      
      
               /* arg_ptr сейчас указывает на аргумент после строки форма-
         та */
                 vprintf(fmt, arg_ptr);
                 va_end(arg_ptr);
            }
            
            На выходе:
            
            Error: line 1, file EXAMPLE
            Syntax error.
            
      
      
            

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог