使用C++程序获取新浪行情数据的方法

所属分类: 软件编程 / C 语言 阅读数: 79
收藏 0 赞 0 分享

在日常开发中我们经常会使用到行情数据,很多的时候我们根据一个基准数据区构造行情,但是随着时间的推移然来构造的数据与真实行情数据之间的差距越来越大。

本问以AG1309为例子来说明,如何使用C++程序来获取新浪行情数据。(说明如果合约过期获取的数据将未空,此时请更换合约信息)。
好了,在这里就不再将废话,直接给出源码供大家学习!

// HttpDataTest.cpp : 定义控制台应用程序的入口点。

#include "stdafx.h"
#include
#include
#include
#include
#include
#include

#define MAXSIZE 1024

#pragma comment(lib, "Wininet.lib")

 
void urlopen(_TCHAR*);
std::string GetSubBtFind(char* lpsz);
int Token(const char* pSep, char* pStr, std::vector& refvec);


int _tmain(int argc, _TCHAR* argv[])
{
 urlopen(_T("http://hq.sinajs.cn/list=AG1309"));

 system("pause");
 return 0;
}


void urlopen(_TCHAR* url)
{
 HINTERNET hSession = InternetOpen(_T("UrlTest"), INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
 if(hSession != NULL)
 {
  HINTERNET hHttp = InternetOpenUrl(hSession, url, NULL, 0, INTERNET_FLAG_DONT_CACHE, 0);
  if (hHttp != NULL)
  {
   wprintf_s(_T("%s\n"), url);
   char Temp[MAXSIZE];
   ULONG Number = 1;
   while (Number > 0)
   {
    InternetReadFile(hHttp, Temp, MAXSIZE - 1, &Number);
    Temp[Number] = '\0';
    std::string str= GetSubBtFind(Temp);
    ;
    char szpstr[1024];
    strcpy(szpstr, str.c_str());
    std::vector vec;
    Token(",", szpstr, vec);
    printf("%s\n", Temp);

    for(int i=0; i
    {
      printf("%s\n", vec[i]);
    }
   }

   InternetCloseHandle(hHttp);
   hHttp = NULL;

  }
  InternetCloseHandle(hSession);
  hSession = NULL;

}

}

std::string GetSubBtFind(char* lpsz)
{
 std::string scrStr=lpsz;
 std::string str_temp="";
 int len=strlen(lpsz);
 int beginPos=scrStr.find("\"");
 scrStr=scrStr.substr(beginPos+1,len);
 int endPos=scrStr.find("\"");

 str_temp=scrStr.substr(0,endPos);
 
 return str_temp;

}

int Token(const char* pSep, char* pStr, std::vector& refvec)
{
 for(char* outer = strtok(pStr, pSep) ; NULL != outer; outer = strtok(NULL, pSep))
 {
  refvec.push_back(outer);
 }

 return 0;
}

上述代码在vs2008下运行结果如下:

以上就是本文的全部内容,希望对大家熟练应用C++程序抓取数据有所帮助

更多精彩内容其他人还在看

C++中四种对象生存期和作用域以及static的用法总结分析

以下是对C++中四种对象生存期和作用域以及static的用法进行了详细的介绍,需要的朋友可以过来参考下
收藏 0 赞 0 分享

C++嵌套类与局部类详细解析

从作用域的角度看,嵌套类被隐藏在外围类之中,该类名只能在外围类中使用。如果在外围类之外的作用域使用该类名时,需要加名字限定
收藏 0 赞 0 分享

C++空类详解

以下是对C++中的空类进行了详细的介绍,需要的朋友可以过来参考下
收藏 0 赞 0 分享

C++之友元:友元函数和友元类详解

友元是一种允许非类成员函数访问类的非公有成员的一种机制。可以把一个函数指定为类的友元,也可以把整个类指定为另一个类的友元
收藏 0 赞 0 分享

C++中返回指向函数的指针示例

int (*ff(int)) (int *,int);表示:ff(int)是一个函数,带有一个int型的形参,该函数返回int (*) (int *,int),它是一个指向函数的指针,所指向的函数返回int型并带有两个分别是Int*和int型的形参
收藏 0 赞 0 分享

C数据结构之单链表详细示例分析

以下是对C语言中的单链表进行了详细的分析介绍,需要的朋友可以过来参考下
收藏 0 赞 0 分享

C数据结构之双链表详细示例分析

以下是对c语言中的双链表进行了详细的分析介绍,需要的朋友可以过来参考下
收藏 0 赞 0 分享

浅析如何在c语言中调用Linux脚本

如何在c语言中调用Linux脚本呢?下面小编就为大家详细的介绍一下吧!需要的朋友可以过来参考下
收藏 0 赞 0 分享

深入解析unsigned int 和 int

以下是对unsigned int和int进行了详细的分析介绍,需要的朋友可以过来参考下
收藏 0 赞 0 分享

浅谈C++中的string 类型占几个字节

本篇文章小编并不是为大家讲解string类型的用法,而是讲解我个人比较好奇的问题,就是string 类型占几个字节
收藏 0 赞 0 分享
查看更多