基于MFC計算器(基礎(chǔ)點)
主要是在實現(xiàn)MFC計算器的過程中碰到的一些問題,和補充的一些知識。
需求:把計算器運算的過程呈現(xiàn)出來。
想法:利用兩個隊列,一個存儲輸入的字符串(表達(dá)式),一個存放結(jié)果。
分別命名為queue1,和myqueue,讓字符串從左到右依次入隊列。
但之后按照自己的思路去推演,發(fā)現(xiàn)如果進入隊列的是1+23,如果下一個字符入隊的是“+”,那么先計算23的結(jié)果入隊myqueue中,而queue1中還儲存1,但下一個“+”入 queue1之后,此時queue1中包含1+,最后把myqueue中的元素和queue1結(jié)合,最終在編輯框文本中顯示的是:1+6;
如果下一個運算符是“*”,那么直接輸出隊列中的字符串。
在實現(xiàn)的過程中會涉及到類型轉(zhuǎn)換,比如CString轉(zhuǎn)換成浮點型。
目前還沒有實現(xiàn),主要原因在于對基礎(chǔ)的語法不熟悉,還不太會使用
先總結(jié)前一段時間碰到的一些問題,和解決方案。
基礎(chǔ)點
隊列:
stack,queue,而map函數(shù)映射庫是char到int的映射,實現(xiàn)了優(yōu)先級的定義。
C++中的compare():涌來進行字符串以及子串之間的比較。
getline():讀整行,包括前導(dǎo)和嵌入的空格并將其儲存在字符串對象中。
length=strlen():遍歷字符串
strlen():可以做一個計數(shù)器,從內(nèi)存的某個位置掃描,直到碰到第一個字符串結(jié)束符‘\0'為止,返回計算器值
bool類型做判斷:true,falsef分別是:對錯,是非,正反
atof():把字符轉(zhuǎn)化為浮點數(shù)
關(guān)于文件操作:
ofstream():寫操作
ofstream fout:是對C++SIT中對文件操作的合集,包含了常用的所有文件操作:插入器,析取器
fout.open(“txt”,ios::out):打開文件流
ifstream():讀操作,從硬盤到內(nèi)存
fstream():同時進行讀寫
ios:in,文件以輸入的方式打開。# 系列文章目錄
總結(jié)
本片文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注服務(wù)器之家的更多內(nèi)容!
原文鏈接:https://blog.csdn.net/anlu_/article/details/120007596