returnfalse;
}
boolzimu(charA)
{
if((A>='A'&&A<='Z')||A>='a'&&A<='z')
returntrue;
returnfalse;
}
intmain()
{
chara;
FILE*f;
charCHAR;
charTOKEN[120];
f=fopen("code.txt","w");
if(f==NULL)
{
cout<<"con'tcreatefile"<exit(0);
}
cout<<"pleaseinputyoucode"<while((a=getchar())!
='?
')
fputc(a,f);
fclose(f);
cout<<"over"<f=fopen("code.txt","r");
while((CHAR=fgetc(f))!
=EOF)
{
while(CHAR!
='')
{
if(zimu(CHAR))//标括?
识?
符?
{
intk=0;
do{
TOKEN[k]=CHAR;
k++;
}while((CHAR=fgetc(f))!
=EOF&&CHAR!
=''&&zimu(CHAR));
if(DIGIT(CHAR))//处鋦理え?
是?
否?
为a包悒?
含?
数簓字?
的?
标括?
识?
符?
{
do{
TOKEN[k]=CHAR;
k++;
}while((CHAR=fgetc(f))!
=EOF&&CHAR!
=''&&DIGIT(CHAR));
}
TOKEN[k]='\0';
if(!
(REAERVE(TOKEN)))//判D断?
所ù得?
标括?
识?
符?
是?
否?
为a保馈?
留?
字?
cout<<"(2,'"<}
if(DIGIT(CHAR))//整?
数簓
{
inti=0;
do{
TOKEN[i]=CHAR;
i++;
}while((CHAR=fgetc(f))!
=EOF&&CHAR!
=''&&DIGIT(CHAR));
TOKEN[i]='\0';
if(!
REAERVE(TOKEN))
cout<<"(3,'"<}
if(CHAR=='+'||CHAR=='-'||CHAR=='*'||CHAR=='/'||CHAR=='>'||CHAR=='<'||CHAR=='=')//运?
算?
符?
{
cout<<"(4,'"<}
if(CHAR==','||CHAR==';'||CHAR=='('||CHAR==')'||CHAR=='{'||CHAR=='}')//分?
隔?
符?
{
cout<<"(5,'"<}
break;
}
}
fclose(f);
cout<<"按恪?
任?
意癮键ü退?
出?
"<cin>>CHAR;
return0;
}
测试结果:
文件存储在code.txt文件中
四、实验小结(包括问题和解决方法、心得体会、意见与建议等)
这次实验让我们更加了解词法分析程序的原理,熟悉