{ ch=fgetc(fp); if(ch=='#') //文件以#结尾,作为扫描结束条件 break; if(ch==' ') //如果是空格,自动跳到下个字符 scanner(fp); else { fseek(fp,-1,1); //如果不是空格,则回退一个字符并扫描 scanner(fp); } }while(ch!='#'); return 0; }
D:\\\\su\\\\one.txt中示例代码如下: main() {
int a,b,c=2; a = 10;
b = a + 20; c = a + b/c; }#
3.6实验结果如下图:
四.实验总结(心得)
通过此次实验,使我意识到在做实验之前一定要认真复习课本内容和老师的要求以此来确定该实验要我们实现的是什么,怎么实现,每一步的步骤都要按照流程图认真的去完成,做实验不能有半点马虎。此外,让我了解到如何设计、编制并调试词法分析程序,加深对词法分析原理的理解;实验核心的部分在于如何识别初各个单词的所属类别,实验前可先规划一下试验流程,这样编写起来比较方便容易。
这次的实验使我熟悉了构造词法分析程序的手工方式的相关原理,也锻炼了自己编写算法以及C语言的能力,虽然在试验过程中存在着很多的不足,但经过老师以及同学的指点再加上自己的努力都一一克服了,今后我也会经常通过自己编写此类的代码来提高自己的能力。