📄 test.txt
字号:
main()
{FILE *fp1; //定义要打开的词法分析的文件
char FileName[50];
int i=0;
int FileSize=0;
printf("请输入您要进行词法分析的文件名,并键入回车作为结束:");
do
{
scanf("%c",&FileName[i]);
}while(FileName[i++]!='\n');
FileName[--i]='\0';
if ((fp1=fopen(FileName,"r+"))==NULL)//打开词法分析的文档
{
printf("cannot open file \n");//没有找到文件就提醒并退出程序
exit(0);
}
else
{
FileSize=fread(&CBuffer,1,1000,fp1);//若文件打开成功就将文件读到内存
printf("您输入的文件大小为:%d字节\n",FileSize);
fclose(fp1);
fp2=fopen("Test1.txt","w+");
fclose(fp2);
IBufIndex=0;
while(CBuffer[IBufIndex]!='\0')//直到文件的结尾
{
if(CBuffer[IBufIndex]>='0'&&CBuffer[IBufIndex]<='9'||CBuffer[IBufIndex]=='o'||CBuffer[IBufIndex]=='O'||(CBuffer[IBufIndex]=='.'&&(CBuffer[IBufIndex+1]>='0'&&CBuffer[IBufIndex+1]<='9')))
DigitRecognise();//识别数字常量
//***********10、12、13、32、47分别是换行、换页、回车、空格以及"/"的ASCII码******************//
else if(CBuffer[IBufIndex]==10||CBuffer[IBufIndex]==12||CBuffer[IBufIndex]==13||CBuffer[IBufIndex]==' '||(CBuffer[IBufIndex]=='/'&&(CBuffer[IBufIndex+1]=='/'||CBuffer[IBufIndex+1]=='*')))
BlackRecognise();//识别空白(空格、回车、换页和注释)
else if (CBuffer[IBufIndex]>='a'&& CBuffer[IBufIndex]<='z' || CBuffer[IBufIndex]>='A' && CBuffer[IBufIndex]<='Z' || CBuffer[IBufIndex]=='_')
SymbolRecognise();//识别标识符和关键字
else if(CBuffer[IBufIndex]=='{'||CBuffer[IBufIndex]=='}'||CBuffer[IBufIndex]==';')
DivCharRecoginse();//识别分界符
else if(CBuffer[IBufIndex]=='"')
ConStrRecoginse();//识别字符串常量
else if(CBuffer[IBufIndex]=='\'')
Con_Trans_CharRecoginse();//识别单字符和转义类字符
else OperatorRecoginse(CBuffer[IBufIndex]);//识别运算符
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -