C++使用map容器實(shí)現(xiàn)電子詞典
目的
學(xué)習(xí)使用map容器
map容器
可以理解為:一種映射,一對(duì)一(例如x對(duì)y),可以通過(guò)x查詢(xún)到唯一對(duì)應(yīng)的y。
本文實(shí)現(xiàn)的功能
讀取電子詞典的文件,一對(duì)一壓入map容器中(即英文對(duì)應(yīng)中文解釋?zhuān)?/p>
然后通過(guò)英文,獲得中文含義,以達(dá)到電子詞典的功能。
代碼思想
1、打開(kāi)電子詞典的text文本文件;
2、使用按行讀取文件中的內(nèi)容(文件中一行,代表一個(gè)單詞以及中文解釋?zhuān)?/p>
3、將讀取到的數(shù)據(jù)通過(guò)sscanf函數(shù)進(jìn)行拆分(通過(guò)空格判斷拆分),將英文與中文分開(kāi),一對(duì)一存入map容器中
4、循環(huán)執(zhí)行2、3步,直到讀到文件末尾結(jié)束;
5、輸入單詞,使用map容器的函數(shù)去查詢(xún)得到中文解釋。
實(shí)現(xiàn)代碼
#include <iostream> using namespace std; //#define _CRT_SECURE_NO_WARNINGS #pragma warning (disable:4996)//用來(lái)屏蔽sscanf的警告 #include <map> #include <fstream> int main() { map<string, string> wordDict; fstream fs; fs.open("dict.txt", ios::in); char buf[1024] = { 0 }; char key[200] = { 0 }; char value[200] = { 0 }; while (fs.peek() != EOF) { fs.getline(buf, 1024); sscanf(buf, "%s %s", key, value); wordDict.insert(pair<string, string>(key, value)); } cout << wordDict.size() << endl; string word; while (1) { cout << "請(qǐng)輸入要查詢(xún)的單詞:" << endl; cin >> word; int res = wordDict.count(word); if (res == 0) { cout << "未查詢(xún)到該單詞!" << endl; } else { cout << "單詞說(shuō)明如下:" << endl; cout << wordDict[word] << endl; } } return 0; }
效果圖
電子詞典的文件截圖:
運(yùn)行結(jié)果:
到此這篇關(guān)于C++使用map容器實(shí)現(xiàn)電子詞典的文章就介紹到這了,更多相關(guān)C++ map電子詞典內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語(yǔ)言循環(huán)語(yǔ)句之重復(fù)執(zhí)行特定的代碼塊
在C語(yǔ)言中分支和循環(huán)語(yǔ)句是實(shí)現(xiàn)條件執(zhí)行和重復(fù)執(zhí)行的重要工具,下面這篇文章主要給大家介紹了關(guān)于C語(yǔ)言循環(huán)語(yǔ)句之重復(fù)執(zhí)行特定的代碼塊的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01OpenCV利用高斯模糊實(shí)現(xiàn)簡(jiǎn)單的磨皮美顏效果
這篇文章主要介紹了通過(guò)OpenCV中的高斯模糊以及雙邊模糊來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的磨皮美顏效果,文中的講解很詳細(xì),感興趣的同學(xué)可以學(xué)習(xí)一下2021-12-12浮點(diǎn)數(shù)在計(jì)算機(jī)中存儲(chǔ)方式是怎樣的
這篇文章介紹了浮點(diǎn)數(shù)在計(jì)算機(jī)中是如何存儲(chǔ)的,講解的比較詳細(xì),有需要的朋友可以參考一下。2016-06-06詳解C++中二進(jìn)制求補(bǔ)運(yùn)算符與下標(biāo)運(yùn)算符的用法
這篇文章主要介紹了C++中二進(jìn)制求補(bǔ)運(yùn)算符與下標(biāo)運(yùn)算符的用法,是C++入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2016-01-01C++實(shí)現(xiàn)簡(jiǎn)單版通訊錄管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)簡(jiǎn)單版通訊錄管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06C++哈希表之線(xiàn)性探測(cè)法實(shí)現(xiàn)詳解
線(xiàn)性探測(cè)法的優(yōu)點(diǎn):只要散列表未滿(mǎn),總能找到一個(gè)不沖突的散列地址;缺點(diǎn):每個(gè)產(chǎn)生沖突的記錄被散列到離沖突最近的空地址上,從而又增加了更多的沖突機(jī)會(huì)2022-05-05