?? functions.cpp
字號:
#include<fstream>
#include"functions.hpp"
//打印字符串str到屏幕,參數采用字符指針.
bool PRINT_func(char* str)
{
cout<<str<<endl;
return true;
}
//描述F過程,具體內容參考實驗指導書
//第一參數為string類型迭代器的引用,用以帶回對主調函數迭代器的修改
//第二參數為int類型的用以,用以帶回對主調函數出錯標志的修改
bool F_func(string::const_iterator& F_current,int& F_flag)
{
if(*F_current>='a' && *F_current<='z')
{
++F_current;
return true;
}
else
if(*F_current!='(')
{
PRINT_func("ERROR");
F_flag=1;
return true;
}
else
{
++F_current;
E_func(F_current,F_flag);
if(*F_current!=')')
{
PRINT_func("ERROR");
F_flag=1;
return true;
}
else
{
++F_current;
return true;
}
}
}
//描述T過程,具體內容參考實驗指導書
//參數功能同上
bool T_func(string::const_iterator& T_current,int& T_flag)
{
F_func(T_current,T_flag);
while(*T_current=='*' || *T_current=='/')
{
++T_current;
F_func(T_current,T_flag);
}
return true;
}
//描述E過程,具體內容參考實驗指導書
//參數功能同上
bool E_func(string::const_iterator& E_current,int& E_flag)
{
T_func(E_current,E_flag);
while(*E_current=='+' || *E_current=='-')
{
++E_current;
T_func(E_current,E_flag);
}
return true;
}
//描述ZC過程,具體內容參考實驗指導書
//第一參數為當前位置,剛開始時即obj.begin()
//第二參數為結束位置即obj.end()
bool ZC_func(string::const_iterator& ZC_current,const string::const_iterator& ZC_end)
{
int ZC_flag=int();
while(ZC_current!=ZC_end)
{
E_func(ZC_current,ZC_flag);
if(*ZC_current!=';' || ZC_flag==1)
{
PRINT_func("ERROR,AGAIN");
ZC_flag=0;
++ZC_current;
}
else
{
PRINT_func("RIGHT,AGAIN");
++ZC_current;
}
}
return true;
}
//從文件中讀出所有字符到對象object中,同時去掉所有的空格和換行
//參數采用引用,以便將結果帶回主調函數.
bool GetTextFromFile(string& object)
{
//定義字符數組并初始化為'\0',用作臨時存儲空間
char ch[50]={'\0'};
//定義整形變量并初始化為0,用作字符數組下標
int i=int();
//定義ifstream類型對象readfile,用以只讀方式打開文件
ifstream readfile("test.txt",ios::in);
//測試能否成功打開文件
if(!readfile)
{
cerr<<"can't open test.txt!"<<endl;
return false;
}
//調用成員函數getline()完成讀入字符到字符數組ch[50]
readfile.getline(ch,49,EOF);
//去掉字符數組ch[]中所有空格和換行,同時依次逐個追加到string類型對象object中
//while語句判斷是否還有字符
while(ch[i]!='\0')
{
//if語句完成去掉空格和換行
if(!(ch[i]==' ' || ch[i]=='\n'))
//調用成員函數完成字符追加,第二參數為待加入字符,類型為char
//第一參數表明第二參數追加的次數
object.append(1,ch[i]);
++i;
}
//調用成員函數close()用以關閉文件
readfile.close();
return true;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -