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

📄 read.cpp

📁 编译器包括词法分析器,语法分析器,最后生成四元式
💻 CPP
字号:
// read.cpp : implementation file
//

#include "stdafx.h"
#include "Project.h"
#include "read.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
CString m_content="";
/////////////////////////////////////////////////////////////////////////////
// read

read::read()
{
}

read::~read()
{
}


BEGIN_MESSAGE_MAP(read, CButton)
	//{{AFX_MSG_MAP(read)
	ON_CONTROL_REFLECT(BN_CLICKED, OnClicked)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// read message handlers

void read::OnClicked() 
{
CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"Text Files (*.txt;*.src)|*.txt;*.src");//设置读取的文件类型
	if(dlg.DoModal() == IDOK)
	{
		m_strFileNamePath = dlg.GetPathName();  //取文件的路径
		m_FileInput.open((char*)m_strFileNamePath.GetBuffer(0),ios::nocreate);//得到文件的带路径的文件名
		if(m_FileInput.fail())
		{
			char *OpenFileOut="无法打开!!!\r\n或是错误文件名\r\n或是此软件出现了问题,建议\r\n在编辑框中直接输入测试程序。";
			m_content = OpenFileOut;
			UpdateData(FALSE);
		}
		else
		{
			char *OpenFileOut="\r\n";
			char *p;
			m_strTargetFileContent = OpenFileOut;


			char str[41] = "\0",str1[20]="";
            int k=0;
			//读入一行,或者最大30个字符
			while(!m_FileInput.eof()) //没有结束继续读
			{   
				m_FileInput.getline(str,40,'\n');
                while(k<40)
				{
					if(str[k]=='/'&&str[k+1]=='*')
					{
                        if(str[k]!='*'&&str[k+1]!='/')
							 str[k]=0;
					    else
						{
							 str[k]=0;
						     str[k+1]=0;
							 k=0;
						     break;
						}
					}
					k++;
				}
			    k=0;
				m_content +=str;
				
				//读入的内容加到对应源文件的变量最后
				p=str;
				while(*(p+1)!='\0')
				{	
					p++;
					                while(k<40)
				{
					if(str[k]=='/'&&str[k+1]=='*')
					{
                        if(str[k]!='*'&&str[k+1]!='/')
							 str[k]=0;
					    else
						{
							 str[k]=0;
						     str[k+1]=0;
							 k=0;
						     break;
						}
					}
					k++;
				}
					k=0;
				}
				

				if(*p=='\r')
					m_content += '\n';//处理回车和换行标志
				else
					m_content += "\r\n";

			}
			UpdateData(FALSE);//写入窗口控件中
			m_FileInput.close();//关闭文件
		}
	}	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -