该程序检查由#define所定义的文本文件中花括号是否配对。函数check完成检测功能,所遵循的原则如下。
①检测过程中,不能出现右花括号“}”个数多于左花括号“{”个数,如果该情况发生,则返回-1。
②整个文件检测完成后,若右花括号“}”个数等于左花括号“{”个数,则返回0,否则返回1。
③检测的行数记录在n所指向的变量中。
#include<stdio.h>
#define file "c:\\bc31\\bin\\match.c"
int check(FILE*, int*)
void main()
{ int line;
FILE*fp=fopen(______);
switch(check(______))
{case 0:printf("file%s match correctly\n",file); break;
case 1:printf("file%s missing)on%d line\n",file,line);break;
case-1:printf("file%s missing{on%d line\n",file,line }; break;
}
fclose(fp);
}
int check(FILE*fp, int*n)
{ int left=0, right=0,line=0;
char c;
while((c=fgetc(fp))!=EOF)
{ if(c=='{')
left++;
else if(c=='}')
right++;
else if(c=='\n')
*n=++line;
if(______)
return -1;
}
return______;
}