c++程序,从网页中获取汇率
c++ program which gets the currency rates from webpage
嗨,我想用C++编写一个程序,从谷歌、雅虎或其他网页获得实时价格,然后执行转换。有人能指导我怎么做吗?
CSocket r;
wchar_t ku[5100];
AfxSocketInit();
wchar_t b[]=L"GET /currency-converter/#from=USD;to=EUR;amt=1 H
TTP/1.1rnhost:finance.yahoo.comrnrn";
;
r.Create()
r.Connect(L"finance.yahoo.com",80);
r.Send(b,sizeof(b));
r.Receive(ku,sizeof(ku)); //header stuff
r.Receive(ku,sizeof(ku)); //rate
CString t(ku);
//grabbed data is ready
优点:CString+WSA错误填充
和linux示例:
#include<stdio.h> //printf
#include<string.h> //strlen
#include<sys/socket.h> //socket
#include<arpa/inet.h> //inet_addr
#include <unistd.h>
#include <netdb.h>
int main(int argc , char *argv[])
{
int sock;
struct sockaddr_in server;
char server_reply[5000];
struct hostent *host;
//Create socket
sock = socket(AF_INET , SOCK_STREAM , 0);
if (sock == -1)
{
printf("Could not create socket");
}
puts("Socket created");
host = gethostbyname("finance.yahoo.com");
server.sin_addr.s_addr=*((unsigned long*)host->h_addr);
server.sin_family = AF_INET;
server.sin_port = htons( 80 );
//Connect to remote server
if (connect(sock , (struct sockaddr *)&server , sizeof(server)) < 0)
{
perror("connect failed. Error");
return 1;
}
puts("Connectedn");
char message[]="GET /currency-converter/#from=USD;to=EUR;amt=1 HTTP/1.1rnhost:finance.yahoo.comrnrn";
//Send some data
if( send(sock , message , strlen(message) , 0) < 0)
{
puts("Send failed");
return 1;
}
//Receive a reply from the server
if( recv(sock , server_reply , 3000 , 0) < 0)
{
puts("recv failed");
}
puts("Server reply :");
puts(server_reply);
//Receive a reply from the server
if( recv(sock , server_reply , 3000 , 0) < 0)
{
puts("recv failed");
}
puts(server_reply);
close(sock);
return 0;
}
这个问题很宽泛。几个主要步骤可以定义如下:
你可以创建一个到特定网站的套接字,并从该网站流式传输数据。有关这方面的更多信息,您可以查看-http://www.boost.org/doc/libs/1_57_0/doc/html/boost_asio/overview/networking/iostreams.html
然后,您可以扫描数据并编写正则表达式,以便从数据中检索值,然后将它们输出到您想要显示的任何位置。
然后,您可以编写一个bash脚本,以定期一次又一次地运行此代码对象。因此,您可以在不手动扫描网站的情况下获得实时结果。
相关文章:
- C++为构建时间获取QDateTime的可靠方法
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 使用指针从C++中的数组中获取最大值
- 如何获取std::result_of函数的返回类型
- 如何在openssl-ecc中获取十六进制格式的私钥
- 使用Unreal C++获取VR耳机的世界位置/方向
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 从C字符串中获取奇怪的字符串长度
- 为什么我的for循环不能正确获取argv
- 从python中调用C++函数并获取返回值
- 如何获取一个数字的前3位
- 获取字符串的长度并将其分配给数组
- 无法获取菜单选择以运行函数.C++
- 数组长度,为什么从命令行获取时不能使用它?
- Boost Spirit,获取迭代器内部语义动作
- 尝试通过OCI例程从Oracle获取blob数据,但出现错误:ORA-01008:并非所有变量都绑定
- 具有默认值的引用获取函数
- xmake总是报告:错误:无法获取cxx的程序,为什么
- c++程序,从网页中获取汇率