jiangweifeng1997
jiangweifeng1997
采纳率28.6%
2015-05-13 15:10

求教一个简单的C++ OOP问题——怎样把信息从文本提取(帮忙实现一下)

40

我要做的是一个英语单词的相关的小程序
本来做这个提取信息是一件很简单的事情 但是由于感觉比较繁 再加上这部分学得也不牢固 就乘机来学习学习
麻烦大牛实现一下

现在有一个txt的英语单词的数据库
主要是 单词+音标(有可能有多个)+词性一+词性一下的释义一+词性一下的释义二……+词性二+……
大概就是这个意思

比如其中一个部分:
among [ә'mʌˌ] prep. 在…之中
amount [ә'maunt] n. 数量
ancient ['einʃәnt] a. 远古的
and [әnd, ænd] conj. 和
anger ['æˌgә] n. 愤怒 vt. 使发怒,激怒 vi. 发怒
angry ['æˌgri] a. 生气的
animal ['ænimәl] n. 动物
announce [ә'nauns] v. 宣布
another [ә'nʌðә] a. 另外的
answer ['ɑ:nsә] vt. 回答
anxious ['æˌkʃәs] a. 焦急的
any ['eni] a. 任何
anybody ['eniˌbɔdi, 'enibәdi] pron. 任何人

怎样写才能对各种情况都成立呢(貌似会有不少if)
(比如anybody就有两个音标 anger就有三个词性、然后及物动词还有两个释义 等等……)

现在基本的信息是
Class Word{
private:
string word="";
string soundmark[];
string charateristic[];
string* meaning[];

这是自己已经写好的……如果方便的话能不能也采用这个命名
word是具体的词 soundmark是音标 charateristic是词性 然后meaning是释义
如果有什么不对的……麻烦指正

求具体代码供学习……谢谢……

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

5条回答

  • beibaokala MacroCpp 6年前

    步骤1:读取txt到内存
    char* psDataSource = OpenFile("你的单词库txt"); 具体百度一下windows的openfile函数
    步骤2:把psDataSource解析到一个map中,单词作为索引
    map mapDataBase; //Word是你定义的类(定义有错误)
    for( ){
    Word a;
    Resolve(); //解析字符串到a ,这个得自己写
    mapDataBase.add("among",“”); //把a放到map里
    }
    步骤3:查找
    Word* pWord = mapDataBase.find("OneWord"); 使用map的find来查找你要的单词
    步骤4:输出
    printf();

    点赞 评论 复制链接分享
  • xy707707 KrisRoofe 6年前

    不客气的说,你写的那一点点代码(只能算是类定义,不算代码)基本上不能叫代码。
    处理的思路很简单,从文件中先读取行,然后对行内容进行解析。
    从文件中读取行,算是文件的基本操作。使用如:std::getline 的函数,或者自己读取回车换行符来判断一行的读取完成
    对行内容进行分析,是基本的字符串操作,可以使用字符串切割函数 strtok 来完成。示例:C语言strtok()函数:字符串分割

    点赞 评论 复制链接分享
  • 91program 91program 6年前

    不客气的说,你写的那一点点代码(只能算是类定义,不算代码)基本上不能叫代码。
    处理的思路很简单,从文件中先读取行,然后对行内容进行解析。
    从文件中读取行,算是文件的基本操作。使用如:std::getline 的函数,或者自己读取回车换行符来判断一行的读取完成
    对行内容进行分析,是基本的字符串操作,可以使用字符串切割函数 strtok 来完成。示例:C语言strtok()函数:字符串分割

    点赞 评论 复制链接分享
  • caozhy 回答这么多问题就耍赖把我的积分一笔勾销了 6年前

    不知道你想做什么程序。根据上下文判断单词的语义?还是什么。
    简单从英文的角度和你解释下。有时候,有两个音标是因为美语和英语的不同,有时候是词性的不同。
    其实这么理解是我们中国人的理解方式。
    应该这么说,两个词性不同,但是拼法相同的单词,其实根本是两个单词。因为是两个单词,所以有不同的读音和意思。但是它们的拼法是一样的。
    如果你去看英国人编写的字典,比如朗文当代英文字典,那么你会看到,其实它们是分为不同的单词词条开列的。

    点赞 评论 复制链接分享
  • call_me_handsome call_me_handsome 6年前

    你可以定义一个vector型变量x,然后将txt中的每一行都存入该变量x,你在获取txt中的信息的时候直接获取一行,看你上面写的貌似是一行一个单词,刚好将每行的单词存入一个char数组或者string中,然后存入vector或者char[][]等容器中,方便你针对每一个单词进行操作,因为每一行都在一个数组或者string中所以可以用if语句判断从而得到所有你需要的对应的单词、英标、解释等。语言学习的一个最重要的途径就是不断地写代码,调试,改错;一定会让你获益匪浅。

    点赞 评论 复制链接分享