利用C++开发一个迷你的英文单词录入和测试小程序-增强功能

本文讲述了如何在日常工具中增强功能,通过调查并利用有道翻译API接口,实现英文单词录入时自动查询中文含义,简化过程。使用cpprestsdk进行HTTP请求,并处理字符编码问题,最终实现单词查询的自动化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

小玩具基本完成之后,在日常工作中,记录一些单词,然后定时再复习下,还真的有那么一点点用(毕竟自己做的小玩具)。

在使用过程中,遇到不认识的单词,总去翻译软件翻译,然后录入中文,这样的话,太繁琐了。可以在录入英文单词的时候,自动从网上查询单词的中文含义,便于录入,或者直接协助录入。

下面我们一步一步来增强小工具的功能

调查API接口

这里简单的查询了翻译api的一些接口,有道的最简单,也不要注册,账户,直接按固定格式去请求,返回的是json,正好使用

这里主要是看了下有道的api接口,返回json,直接用。

http 请求

发起http请求,这里推荐Neget上能一键安装的,vcpkg有些也可以,但是可能跟环境有关,到时候编译可能会失败。这里推荐微软的cpprestsdk。既能熟悉modem C++,又能对微软的ppl了解一点点。

先安装cpprestsdk,Nuget 安装只要点击安装即可

组合起来

api有了,c++发起http请求的库也有了,剩下的就是堆代码了。找一个restsdk 的例子来改,官方网站上是写入http文件,这里直接请求,然后处理json数据,并且最终打印到控制台。

以下是把单词封装成一个异步函数

很简单,chrome 浏览器,把request header 搞出来,对应着撸代码即可。完成了之后再插入模式里面,收到word 候立即启动这个异步任务

关于字符编码的问题

std::cin, win ,的字符编码,为了使用restsdk,可能经常要在各个字符集之间转换

这里举例两个场景,并且给出一般的解决思路:

  • http的parameter 是url encode

直接找restsdk的文档,已经有encode的函数,直接拿来用,但是有一点要注意,builder构建的时候会再次编码(默认参数)

  • GB2312转UTF-8

这里有两个方法,使用windows 提供的api ,MultiByteToWideChar,WideCharToMultiByte

自行百度

这里推荐使用iconv这个库,方便跨平台。

在windows 上使用iconv有两种方法: 编译链接;dll直接加载的方式

这里简单封装一个dll helper的类

采用模版模式,基类只加载dll文件,在派生类里面提取具体的函数,直接参考iconv的头文件拷贝过来,加上*,以及typef ,最终在定义类的转发函数即可。

关键函数如下

类有了,封装一个函数来使用,直接用GPT 找一个iconv的例子,把对应的函数转换成成员函数

一切都好了,搞个例子跑下看看

来看看最终的效果

再也不用去翻译软件查询单词含义了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值