⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 源程序预处理.txt

📁 实现源程序输入串中注释、续行符的删除
💻 TXT
字号:
程序代码:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -