你可以用堆栈来处理。
1、首先堆栈为空。
不断fgetc():
2、如果遇到“{”就入堆栈(Push),并记录这个“{”的位置(第几行第几列),如果遇到“}”就从堆栈里面出一个(Pop)。
3、如果堆栈已空但还遇到“}”,证明当前的“}”多余,报错;
4、如果已经到达文件末尾,堆栈非空,证明“{”多余,把堆栈中“{”的位置逐个Pop出来,报错。
分别对“{”“}”计数。
不匹配只有两种情况:
(一)在计数过程中,“{”的计数值少于“}”的计数值。
(二)计数结束时,“{”的计数值不等于“}”的计数值。