来来来,发个贴做个人人都会的在线英语词典
c4droid吧
全部回复
仅看楼主
level 11
雷神lyc 楼主
先占个楼。。。
2017年08月24日 17点08分 1
level 5
啥意思
2017年08月26日 11点08分 2
level 11
雷神lyc 楼主
先用SDL2写了一个简陋的界面
2017年08月28日 15点08分 3
level 11
雷神lyc 楼主
选择查找单词可进入单词查找界面
2017年08月28日 15点08分 4
level 7
全部用SDL做?
2017年08月28日 16点08分 5
这些是的
2017年08月28日 16点08分
level 11
雷神lyc 楼主
查询结果
2017年08月28日 16点08分 6
level 11
雷神lyc 楼主
下面开始讲具体怎么弄,当然朴实一点,单纯的使用c++,当然也可以用c,就不写界面了,大概是下面这个样子,其他的自己自定义吧
2017年08月28日 16点08分 7
level 11
雷神lyc 楼主
其实就是通过下载网页得到结果[滑稽],如果已经知道怎么弄了就不用往下看了
2017年08月28日 16点08分 8
level 11
雷神lyc 楼主
随便调用一个可以查找单词的url,比如用360搜索[滑稽]
2017年08月28日 16点08分 9
level 12
用的啥网络库?
2017年08月28日 22点08分 10
自带的吧
2017年08月29日 14点08分
level 12
我想把curl弄到手机上,但是编译不了。。。。
2017年08月28日 22点08分 11
level 13
求源码源码[滑稽]
2017年08月29日 01点08分 12
level 13
666666
2017年08月29日 05点08分 13
level 11
雷神lyc 楼主
网络库百度一下就有,能用就行[滑稽],搬过来一个
int downloadURL(const char *host, unsigned short port, const char *path, string & body)
{
int sock;
struct sockaddr_in sin;
struct hostent *he = gethostbyname(host);
if (!he)
{
return HTTP_UNKNOW_HOST;
}
sin.sin_family = he->h_addrtype;
sin.sin_port = htons(port);
sin.sin_addr.s_addr = ((unsigned long *)(he->h_addr_list[0]))[0];
if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0)
{
return HTTP_SOCKET_ERROR;
}
if (connect(sock, (struct sockaddr *)&sin, sizeof(sin)) < 0)
{
close(sock);
return HTTP_CONNECT_ERROR;
}
char str[4096];
sprintf(str, "GET %s HTTP/1.0\r\nHost:%s\r\nUser-Agent:Mozilla/4.0\r\n\r\n", path, host);
if (write(sock, str, strlen(str)) < 0)
{
close(sock);
return HTTP_WRITE_ERROR;
}
fd_set rfds;
struct timeval tv;
FD_ZERO(&rfds);
FD_SET(sock, &rfds);
tv.tv_sec = 3;
tv.tv_usec = 0;
if (!select(sock + 1, &rfds, NULL, NULL, &tv))
{
close(sock);
return HTTP_SELECT_ERROR;
}
if (FD_ISSET(sock, &rfds))
{
int len = 1024 * 4;
string content;
int rv = 0;
char buf[len + 1];
while ((rv = read(sock, buf, len)))
{
buf[rv] = 0;
content += buf;
}
close(sock);
if (!content.empty())
{
if (content.find("200") >= content.find("\n"))
{
return HTTP_UNKNOWN_ERROR;
}
int start = 0;
if (start = content.find("\r\n\r\n"))
{
body.append(content.c_str() + start + 4);
}
else if (start = content.find("\n\n"))
{
body.append(content.c_str() + start + 2);
}
else
{
return HTTP_BAD_HEADER;
}
return HTTP_SUCCESS;
}
return HTTP_READ_ERROR;
}
close(sock);
return HTTP_UNKNOWN_ERROR;
}
int downloadURL(const string & url, string & body)
{
int end = url.find("/");
string host = url.substr(0, end);
string path = url.substr(end);
return downloadURL(host.c_str(), 80, path.c_str(), body);
}
2017年08月29日 13点08分 14
level 11
雷神lyc 楼主
然后我们就可以打印下载的网页信息[滑稽]
downloadURL("m.so.com/s?q=呵呵", s);
cout<<s;
2017年08月29日 13点08分 15
1 2 尾页