十三周——输入输出流——项目三 电子词典解决版——输出汉字乱码的处理
2015-06-10 08:44
369 查看
问题及代码:
运行结果:
心得体会:
开始的时候输出的一直是汉字的乱码,后面贺老提醒的字符集有错误,然后自己百度的,又改的,具体的操作如下
/* Copyright (c) 2014,烟台大学计算机学院 *All rights reserved. *文件名称:lily.cpp *作者:李莉 *完成日期:2015年6月3日 *版本号:v1.0 *问题描述)使用这个词典,读入一篇文章,输出对其中的所词的解释。例如,对aboutcpp.txt,输出如下左图结果所示(也可以看到其中待改进的地方)。 程序输入:输入若干正数 程序输出:运行结果 */ #include <fstream> #include <iostream> #include <cstdlib> #include <string> using namespace std; class Word { public: void set(string e,string c,string wc); int compare(string); string getChinese(); string getWordClass(); private: string english; string chinese; string word_class; }; void Word::set(string e,string c,string wc) { english=e; chinese=c; word_class=wc; } int Word::compare(string k) { return english.compare(k); } string Word::getChinese() { return chinese; } string Word::getWordClass() { return word_class; } class Dictionary { public: Dictionary(); string searchWord(string k); private: int Binsearch(int low,int high,string k); int wordnum; Word words [8000]; }; Dictionary::Dictionary() { wordnum=0; string e,c,wc; ifstream infile("dictionary.txt",ios::in); if(!infile) { cerr<<"open error!"<<endl; exit(1); } while(!infile.eof()) { infile>>e>>c>>wc; words[wordnum].set(e,c,wc); wordnum++; } infile.close(); } int Dictionary::Binsearch(int low,int high,string k) { int mid; while(low<=high) { mid=(low+high)/2; if(words[mid].compare(k)==0) { return mid; } if(words[mid].compare(k)>0) { high=mid-1; } else { low=mid+1; } } return -1; } string Dictionary::searchWord(string k) { int low=0,high=wordnum-1; int index=Binsearch(low,high,k); if(index>=0) return words[index].getWordClass()+words[index].getChinese(); else return "查无此词!"; } int main() { Dictionary dict; ifstream infile("aboutcpp.txt",ios::in); if(!infile) { cerr<<"open error!"<<endl; exit(1); } string word; while(infile>>word) { cout<<word<<"---------------"<<dict.searchWord(word)<<endl; } infile.close(); return 0; }
运行结果:
心得体会:
开始的时候输出的一直是汉字的乱码,后面贺老提醒的字符集有错误,然后自己百度的,又改的,具体的操作如下
相关文章推荐
- 【软测试】计算机硬件
- NDK环境配置
- Mysql 数据类型与java中的数据类型对照表
- 2015、6、10
- 第十四周程序阅读 控制符控制输出格式
- 第十四周项目1-小玩文件(1)
- Struts 2 学习笔记:Struts 2 的命名空间(namespace)的用法和作用
- 第14周项目 例4.2
- 第十四周项目一——小玩文件(2)
- .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
- 中国第二代身份证验证js代码
- 第十四周项目:小玩文件(2)
- .Net 转战 Android 4.4 日常笔记(3)--目录结构分析
- 【render】partial及其局部变量
- 第14周项目1 - 小玩文件(3)
- openstack kilo keystone token问题及性能优化
- struts2学习笔记(2)---Action中访问ServletAPI获取Map类型的Servlet元素
- 第十四周 阅读项目 标准输入输出流
- sgu 205
- .Net 转战 Android 4.4 日常笔记(2)--HelloWorld入门程序