读书人

在询问C++有关问题字符串拼接的有关

发布时间: 2013-03-25 15:43:04 作者: rapoo

在询问C++问题,字符串拼接的问题,我一学java的,现在天天在c++论坛混,悲剧啊。
先上代码如下:


bool C;
C=false;
string str[8];
while(C)
{
C =p->GetAllGLogData(18,&lTMachineNO,&lEnrollNO,&lEMachineNO,&lVerifyMode,&lYear,&lMonth,&lDay,&lHour,&lMin);
str[0]=lTMachineNO;
str[1]=lEnrollNO;
str[2]=lEMachineNO;
str[3]=lVerifyMode;
str[4]=lYear;
str[5]=lMonth;
str[6]=lDay;
str[7]=lHour;
str[8]=lMin;
RecCount++;
}

过程就是调用一个方法叫做GetAllGLogData,这个方法会返回9个值,都是long类型的。
而且是调用一次就返回9个,用前面那个C做判读标识,当C不为false的时候,就一直调用,这样就形成了一个二维数组,现在头大的是,这个行数不是固定的,也没有办法预判,因为没有获取行数的办法。除非在while一次,那这个效率
我根据java的方法已经想了很多办法还是没辙。
方法一,将9个数字拼接成字符串,比如:a1,a2,a3a9,大不了在根据逗号拆分。结果,我拼接不起来
方法二,我打算用ArrayList<long> arr =new ArrayList<long>();先将那个9个add进去;然后在用ArrayList<object> arr1=new ArrayList<object>();将前面那个arr在用add到arr1里面,结果还是没有搞定。
方法三,用指针,拼接内存地址,这个就更不用说了。
求各位大哥,这事该怎么处理啊,我需要将最后这个二维数组传出去,让别的方法调用啊 c++
[解决办法]
#include <string>
#include <vector>

vector<string> MyData;

while(...)
{
...
}

引用:
引用:
char str[260] = {0};
sprintf(str ,"%ld%ld%ld%ld%ld%ld%ld%ld%ld" ,lTMachineNO,lEnrollNO,lEMachineNO......);
大哥,果然还是你的方法高明啊。
我现在用cout<<str<<endl;效果和原来那么多个cout的效果一样。
我在请教下,现在这个,……

#include <string>
#include <vector>
void fun(vector<string> & MyData)
{
while(...)
{
...
char str[260] = {0};
sprintf(str ,"%ld%ld%ld%ld%ld%ld%ld%ld%ld" ,lTMachineNO,lEnrollNO,lEMachineNO......);
MyData.push_back(string(str));
...
}
}

int main()
{
vector<string> MyData; // 这个容器里包含着你要的结果
fun(MyData);
return 0;
}

读书人网 >C++

热点推荐