return -1; }
firchar=head(in);//得到头文件和#define下的第一个非#等字符 late=1;
while(fgets(buf,bufsize,in)!=NULL) {
Char=firchar;
int len=strlen(buf); buf[len-1]='\\0'; start=0;
while(firchar!='\\0') { while(buf[start]==' '&&firchar==' ') start++; if(firchar==' ') { if(buf[start] =='\\0') break;
firchar= buf[start];//当firchar是空格且其后一个是非空字符时, start++; //将后值赋给firchar并将角标加一 } if(isalpha(firchar)) dealAlpha(); else if(isdigit(firchar)) dealDigit(); else if(firchar=='/') { if(buf[start]=='/'||buf[start]=='*')//注释 { dealNotation(); if(!notation) { fprintf(Error,\ } break; } else//运算符 dealOperate(); } else if(Border(firchar)) dealBorder(); else if(Operate(firchar)) dealOperate(); else if(firchar=='\\''||firchar=='\ dealChar(firchar);
第21页 共23页
else//字符不再编译器识别范围之内 {
fprintf(Error,\ firchar=buf[start];//字符后移 } start++; }
if(!notation) break; line++;
if(last==true) last=false; else
fputc('\\n',Out); firchar=getfirstc(in); if(isNotation==1) { if(Char!='/') fputc(Char,Out); for(int temp=0;temp else if(isNotation==2); else fprintf(Out,\ if(firchar=='#') { fputc('\\n',Out); firchar=head(in); } isNotation=0; } cout<<\ writeSign(); writeVariate(); writeConstant(); 第22页 共23页 fclose(in); fclose(Out); fclose(Error); printf(\ printf(\ printf(\ printf(\ printf(\ return 0; } 运行时截图: 第23页 共23页