首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

std:vector出现乱码的有关问题

2013-11-04 
std::vector出现乱码的问题过程是:使用ADO从数据库中读取数据,然后保存到结构中,再把结构保存到std::vecto

std::vector出现乱码的问题
过程是:使用ADO从数据库中读取数据,然后保存到结构中,再把结构保存到std::vector中,问题是:当保存第二行数据的时候,第一行的数据就变成乱码了。请大侠给与指教。代码如下:
std::vector<tagKuCun> vecKuCun;

typedef struct _tagKuCun
{
    LPCTSTR szGoodsCode; 
        LPCTSTR szGoodsName; 
        LPCTSTR szGoodsType; 
        LPCTSTR szGoodsUnit; 
        int nGoodsNumber;    

}tagKuCun;

...
 if(m_pADO->Execute(sqlSelectTable)) 

tagKuCun *strTmpKuCun=new tagKuCun();
while(0== m_pADO->GetRecordset()->adoEOF)   


CString csTmpGC=(LPCTSTR)(_bstr_t)m_pADO->GetRecordset()->GetCollect("GoodsCode");
CString csTmpGN = (LPCTSTR)(_bstr_t)m_pADO->GetRecordset()->GetCollect("GoodsName");
CString csTmpGU = (LPCTSTR)(_bstr_t)m_pADO->GetRecordset()->GetCollect("GoodsUnit");
CString csTmpUnits = (LPCTSTR)(_bstr_t)m_pADO->GetRecordset()->GetCollect("Units");
int nTmpNumber=m_pADO->GetRecordset()->GetCollect("Number");

strTmpKuCun->szGoodsCode =csTmpGC;
strTmpKuCun->szGoodsName=csTmpGN;
strTmpKuCun->szGoodsType =csTmpGU;
strTmpKuCun->szGoodsUnit=csTmpUnits;
strTmpKuCun->nGoodsNumber=nTmpNumber;

vecKuCun.push_back(*strTmpKuCun); //这里循环第二次的时候,上次保存的数据就变成乱码了??(貌似是指针初始化了)
m_pADO->GetRecordset()->MoveNext();
}
} std::vector??ADO? std::vector ADO
[解决办法]
1、先看一下LPCTSTR代表了什么
2、接着你应该应该明白了MoveNext()之后为什么第一个结构体会乱码了

可先不使用vector,你先声明两个结构体实例,按你的方法读到第二个,这时再看第一个结构体变量

热点排行