山东科技大学学生课程设计
str = ch; ch=myf.get(); if(ch == '=') {
str += ch;
input.push_back(str); ch=myf.get(); str = \ } else {
input.push_back(str); } }
else if(ch=='+' || ch=='-' || ch=='*' || ch=='/') {
if(str != \ {
input.push_back(str); str = \ }
str += ch;
input.push_back(str); ch=myf.get(); str = \ } else {
str += ch; ch=myf.get(); } }
myf.close(); /*读文件结束*/
/*进行词法分析,并输出*/
for(iter = input.begin();iter != input.end();iter++) {
14
山东科技大学学生课程设计
int sign = 0;
for(int i=0;i  if(Rword[i] == *iter)  {    cout<<\  sign = 1;   break;  } }   if(sign == 0)//判断是否为运算符 {   for(int i=0;i   if(Opear[i] == *iter)   {     cout<<\   sign = 1;    break;   }  } }   if(sign == 0)//判断是否为分隔符 {   for(int i=0;i   if(Separ[i] == (*iter))   {     cout<<\   sign = 1;    break;   }  } }   15  山东科技大学学生课程设计           }   if(sign == 0)//判断是否为无符号型常数或者变量  {    if((*iter)[0]>'0' && (*iter)[0]<='9')    cout<<\  else     cout<<\ } }  /*判断结束,程序结束*/  四、运行结果及分析 1.测试数据  测试数据为test.txt文件内的数据:     16  山东科技大学学生课程设计  2.测试输出的结果      3.设计和思考  本程序的设计是基于C++实现的词法分析程序,较为方便的使用了迭代器,对open的文件进行循环读取数据、分析、判断之后进行输出。难点在于对思路的整理和理解.         17 
相关推荐: