Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Тестовые примеры / ch4 / test_vfprintf
.C /* source file: test_vfprintf.c */
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
typedef enum { INFO, WARN, ERROR, FATAL } MSG_TYPE_ENUM;
static int numErr, numWarn, numInfo;
void msg ( const MSG_TYPE_ENUM mtype, void* format, ... )
{
switch (mtype) {
case INFO: numInfo++;
break;
case WARN: numWarn++;
fputs( "Warning: ",stderr );
break;
case ERROR: numErr++;
fputs( "Error: ",stderr );
break;
case FATAL: fputs( "Fatal: ", stderr );
break;
}
va_list ap;
va_start( ap, format );
vfprintf( stderr, (char*)format, ap );
va_end( ap );
if (mtype == FATAL ) exit( 2 );
}
/* Tets program for the msg function */
int main()
{
msg( INFO, "Hello %% %s %%\n", "world" );
msg( WARN, "There are %d days in %c year\n", 265, "A" );
msg ( ERROR, "%g x %i = %f\n", 8.8, 8, 8.8*8 );
msg( FATAL, "Bye-bye\n" );
return 0;
}
Соседние файлы в папке ch4