rendered paste body#include <stdarg.h>
#include <stdlib.h>
#include <fstream.h>
#define LOGFILE "debug.log"
#define maxlines 50
int linecount;
int charcount = 0 ;
char debugbuffer[maxlines * 50];
void debugPrint(char *fmt,...){
FILE *debuglogfile;
va_list ap;
char *p,*sval;
int ival;
double dval;
va_start(ap,fmt);
for (p = fmt; *p; p++){
if (*p != '%'){
debugbuffer[charcount++] = *p;
continue;
}
switch (*++p){
case 'd':
ival = va_arg(ap,int);
sprintf (&debugbuffer[charcount],"%d",ival);
charcount = strlen(debugbuffer) + 1;
break;
case 'f':
dval = va_arg(ap,double);
sprintf (&debugbuffer[charcount],"%f",dval);
charcount = strlen(debugbuffer) + 1;
break;
case 's':
for (sval = va_arg(ap,char *); *sval ; sval++)
strcat(&debugbuffer[charcount++],va_arg(ap,char *));
break;
}
}
va_end(ap);
debugbuffer[charcount++]='\r';
debugbuffer[charcount++]='\n';
debugbuffer[charcount]=0;
linecount++;
//If we have reached the maximum defined number of lines,
//we write to a file and reset the counters
if (linecount >= maxlines){
debuglogfile = fopen (LOGFILE,"a");
fwrite (debugbuffer,strlen(debugbuffer),1,debuglogfile);
//fflush (debuglogfile);
fclose (debuglogfile);
linecount = 0;
charcount = 0;
}
}
int main (int argc,char **argv){
int i;
for (i=0;i<1000;i++)
debugPrint("Hello, this is a test number %d \r\n", random());
return 0;
}