C++使用map容器實(shí)現(xiàn)電子詞典
目的
學(xué)習(xí)使用map容器
map容器
可以理解為:一種映射,一對(duì)一(例如x對(duì)y),可以通過(guò)x查詢到唯一對(duì)應(yīng)的y。
本文實(shí)現(xiàn)的功能
讀取電子詞典的文件,一對(duì)一壓入map容器中(即英文對(duì)應(yīng)中文解釋),
然后通過(guò)英文,獲得中文含義,以達(dá)到電子詞典的功能。
代碼思想
1、打開電子詞典的text文本文件;
2、使用按行讀取文件中的內(nèi)容(文件中一行,代表一個(gè)單詞以及中文解釋);
3、將讀取到的數(shù)據(jù)通過(guò)sscanf函數(shù)進(jìn)行拆分(通過(guò)空格判斷拆分),將英文與中文分開,一對(duì)一存入map容器中
4、循環(huán)執(zhí)行2、3步,直到讀到文件末尾結(jié)束;
5、輸入單詞,使用map容器的函數(shù)去查詢得到中文解釋。
實(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)輸入要查詢的單詞:" << endl;
cin >> word;
int res = wordDict.count(word);
if (res == 0)
{
cout << "未查詢到該單詞!" << 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++實(shí)現(xiàn)景區(qū)信息管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)景區(qū)信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
C語(yǔ)言的isatty函數(shù)和ttyname函數(shù)以及sendmsg函數(shù)用法
這篇文章主要介紹了C語(yǔ)言的isatty函數(shù)和ttyname函數(shù)以及sendmsg函數(shù)用法,是C語(yǔ)言入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-09-09
C++中std::invalid_argument報(bào)錯(cuò)解決
在C++編程中,std::invalid_argument是一個(gè)常見的異常,用于指示函數(shù)參數(shù)無(wú)效,文章詳細(xì)解析了這一異常的產(chǎn)生原因,并提供了多種解決策略,感興趣的可以了解一下2024-09-09
C++面向行輸入之get()與getline()實(shí)例詳解
在c++里當(dāng)我們輸入一個(gè)字符串時(shí)習(xí)慣用cin,但是cin只能讀取一段不含空格的字符串,如果我們需要讀取一段包含空格的字符串時(shí),就需要用到getline()或get(),下面這篇文章主要給大家介紹了關(guān)于C++面向行輸入之get()與getline()的相關(guān)資料,需要的朋友可以參考下2021-10-10

