Fonction pprint
#ifdef WIN32
#define sleep(useconds) Sleep( useconds );
#else
#define sleep(useconds) usleep( useconds * 1000 );
#endif
/*************************************************************************
* progressive print *
* msg : le message à afficher *
* ms : le nombre de milli-secondes entre chaque "lettre" *
* skip : si différent de 0, ne perd pas de temps à afficher les espaces *
*************************************************************************
* exemple : *
* pprint("Hello, world\n", 10, 0); *
*************************************************************************/
void pprint(const char * msg, unsigned int ms, int skip)
{
int len = strlen(msg);
char * tmp_msg = malloc(len + 1);
if( tmp_msg != NULL )
{
int pos = 0;
while( pos < len )
{
printf( "\r" );
while( skip && msg[ pos ] == ' ' )
{
tmp_msg[ pos ] = msg[ pos ];
tmp_msg[ pos + 1 ] = '\0';
pos++;
}
tmp_msg[ pos ] = msg[ pos ];
tmp_msg[ pos + 1 ] = '\0';
printf( tmp_msg );
fflush( stdout );
pos++;
sleep( ms );
}
}
}
retour