www.pudn.com > 文件恢复及修补 C 语言源程序.zip > CC.C


 
/**************************************************************** 
*								* 
*			C P R I N T				* 
*								* 
*	C Source Function Paren and Bracket Checker 		* 
*								* 
*	T. Jennings 						* 
*								* 
*								* 
****************************************************************/ 
 
#include  
#include  
 
 
main(argc,argv) 
int argc; 
char **argv; 
{ 
int file;	 
char c,lastc; 
int parens,brackets,comments; 
int line, col; 
char hdr[40]; 
 
	file= _xopen(argv[1],0); 
	if (file == -1) { 
		cprintf("File missing. Try CC  \r\n"); 
		exit(); 
	} 
	brackets= parens= comments= 0; 
	line= 0; col= 0; 
	lastc= '\0'; 
 
	while (_xread(file,&c,1)) { 
		if (col == 0) { 
			sprintf(hdr,"%d: {%d} (%d) /*%d*/",line,brackets,parens,comments); 
			while (strlen(hdr) < 23) 
				strcat(hdr," "); 
			cprintf("%s|",hdr); 
		} 
		if (c == '{') ++brackets; 
		if (c == '(') ++parens; 
		if (c == '}') --brackets; 
		if (c == ')') --parens; 
 
		if ((c == '*') && (lastc == '/')) ++comments; 
		if ((c == '/') && (lastc == '*')) --comments; 
 
		++col; 
		if (c == 0x0a) { 
			col= 0; 
			++line; 
		} 
 
		_xwrite(1,&c,1); 
		lastc= c; 
	} 
	cprintf("\r\n\r\n"); 
	if (brackets) cprintf("Unbalanced brackets\r\n"); 
	if (parens) cprintf("Unbalanced parenthesis\r\n"); 
	if (comments) cprintf("Unbalanced comments\r\n"); 
}