源程序预处理.txt
来自「实现源程序输入串中注释、续行符的删除」· 文本 代码 · 共 60 行
TXT
60 行
程序代码:
#include"stdio.h"
#include "fstream.h"
#include"iostream.h"
class exp1
{
public:
void pro_process(char *buf)
{
ifstream cinf(".\\xxx.cpp",ios::in);
int i=0; /*计数器*/
int j=0;
int count=0;
char old_c='\0',cur_c; /*前一个字符,当前字符*/
bool in_comment=false; /*false表示当前字符未处于注释中*/
while(cinf.read(&cur_c,sizeof(char))) /*从文件读一个字符*/
{
if(in_comment==false)
{
if(old_c=='/'&&cur_c=='*') /*进入注释*/
{
i--; /*去除已存入扫描缓冲区的字符*/
in_comment=true;
}
else
{
if(old_c=='\\'&&cur_c=='\n') /*发现续行*/
i--; /*去除已存入扫描缓冲区的字符*/
else
{
if(cur_c>='A'&&cur_c<='Z') /*大写变小写*/
cur_c+=32;
if(cur_c>='\t'&&cur_c<='\n') /*空格取代tab换行*/
cur_c+=' ';
buf[i++]=cur_c;
count++;
}
}
}
else
{
if(old_c=='*'&&cur_c=='/') /*离开注释*/
in_comment=false;
}
old_c=cur_c; /*保留前一个字符*/
}
buf[i++]='#'; /*在源程序词尾加字符#*/
for(j=0;j<count;j++)
{
printf("%c",buf[j]);
}
}
};
void main()
{
exp1 *p;
char c[2500]={0};
p->pro_process(c);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?