?? count.c
字號:
/*________________________________________________________________ count.c Ali J. Azarbayejani 17 March 1994 (originated) CONTENTS: DESCRIPTION: Outputs a list of formatted numbers, intended for the following UNIX use. foreach i (`count -start 0 -end 9 -inc 1`) ... end foreach i (`count -fmt %.3d`) ... end ________________________________________________________________*/#include <stdio.h>#include <stdlib.h>struct { char *progname; int verbose; float start; float end; float inc; char *fmt;}params = { "", 0, 1., 1., 1., "%d"};static void alert( char *s ){ fprintf( stderr, "%s: %s\n", params.progname, s );}static void error( char *s ){ alert( s ); exit( -1 );}static void usage( int argc, char **argv ){ static char *flags = "[-v] [-start #] [-end #] [-inc #] [-fmt <string>]"; static char *io = "> (# # # ...)"; static char *help = "foreach i (`count -end 10`) ..."; fprintf( stderr, "usage: %s %s\n\t%s\n%s", argv[0], flags, io, help ); exit(-1);}static void parse_command_line( int argc, char **argv ){ int i; params.progname = argv[0]; for(i=1; i<argc; i++) { if( !strcmp(argv[i], "-v") ) params.verbose = 1; else if( !strcmp(argv[i], "-start") ) params.start = atof( argv[++i] ); else if( !strcmp(argv[i], "-end") ) params.end = atof( argv[++i] ); else if( !strcmp(argv[i], "-inc") ) params.inc = atof( argv[++i] ); else if( !strcmp(argv[i], "-fmt") ) params.fmt = argv[++i]; else usage( argc, argv ); }}main( int argc, char **argv ){ /* Main variables */ int count; float fcount; /* First command */ parse_command_line( argc, argv ); if( params.verbose ) fprintf( stderr, "Start= %f, End= %f, Inc= %f\n", params.start, params.end, params.inc ); if( params.start > params.end ) error( "bad args" ); switch( params.fmt[ strlen(params.fmt)-1 ] ) { case 'd': if( params.verbose ) fprintf( stderr, "Integer\n" ); for( count = params.start; count <= params.end; count += params.inc ) { printf( params.fmt, count ); printf( " " ); } break; case 'f': case 'g': if( params.verbose ) fprintf( stderr, "Float\n" ); for( fcount = params.start; fcount <= params.end; fcount += params.inc ) { printf( params.fmt, fcount ); printf( " " ); } break; default: fprintf( stderr, "Bad format type\n" ); }}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -