读书人

一个奇怪的有关问题传送的数据都对

发布时间: 2012-01-28 22:06:14 作者: rapoo

一个奇怪的问题,传送的数据都对,就是出现不该有的空行



主机那边传过来数据,在客户机上切割成8维的数组,然后用sprintf的方法把它输出到.txt文本中去,
代码:
void func(ofstream& out,const short v[8]){
char szSQL[1000];
memset(szSQL,0,1000);
if(v[0] != 10 && v[0] !=11 && v[0]!=0)
{
sprintf(szSQL, "%ld "
"%ld, "
"%ld, "
"%.2f, "
"%ld, "
"%ld, "
"%ld "
,
v[1]
(long) v[2],


v[0],
v[3],
v[4],
v[5],
v[6],
(long)v[7]
);
}
out < <szSQL < <endl;
return;

}
运行后的结果:
3000,417,6,0.00,2,3885,1,34471628
3000,419,19,0.00,1,3873,1,34471628
3000,421,19,0.00,1,3866,1,34471628
3000,420,5,0.00,1,3863,1,34471628
3000,421,19,0.00,1,3860,1,34471628
3000,416,7,0.00,2,3843,2,34471628
3000,427,19,0.00,1,3833,1,34471628
3000,429,7,0.00,1,3823,1,34471628
3000,431,16,0.00,1,3825,3,34471628
3000,431,15,0.00,1,3822,3,34471628
3000,432,13,0.00,1,3822,1,34471628
3000,433,19,0.00,1,3813,1,34471628
3000,433,3,0.00,1,3815,4,34471628
3000,433,4,0.00,1,3815,4,34471628
<------------------空行


<------------------空行
3000,435,7,0.00,1,3810,1,34471628
3000,437,6,0.00,1,3804,1,34471628
3000,438,19,0.00,1,3801,1,34471628
3000,440,13,0.00,1,3784,1,34471628
3000,440,14,0.00,1,3784,1,34471628
3000,438,7,0.00,1,3783,2,34471628
3000,444,19,0.00,1,3782,1,34471628
3000,444,19,0.00,1,3781,1,34471628
3000,446,7,0.00,1,3766,3,34471628
3000,448,19,0.00,1,3759,1,34471628
3000,451,13,0.00,2,3751,1,34471628
3000,455,2,0.00,2,3736,2,34471628
3000,455,1,0.00,2,3733,2,34471628
3000,459,2,0.00,2,3715,1,34471628
3000,459,5,0.00,2,3712,1,34471628
3000,460,19,0.00,2,3713,1,34471628
3000,461,19,0.00,2,3714,1,34471628
3000,461,6,0.00,1,3709,2,34471628
3000,458,7,0.00,2,3702,3,34471628
3000,464,14,0.00,1,3701,1,34471628
3000,466,3,0.00,1,3695,4,34471628
<------------------空行
3000,466,19,0.00,1,3696,1,34471628
3000,467,1,0.00,1,3696,1,34471628
3000,467,4,0.00,1,3696,4,34471628
3000,467,7,0.00,1,3690,2,34471628
<------------------空行
3000,468,13,0.00,1,3691,2,34471628
3000,468,3,0.00,1,3691,3,34471628
3000,468,15,0.00,1,3690,3,34471628
3000,469,15,0.00,1,3686,3,34471628
<------------------空行
3000,469,19,0.00,1,3686,1,34471628
3000,469,16,0.00,1,3682,3,34471628
3000,470,13,0.00,1,3681,1,34471628
3000,471,19,0.00,1,3674,1,34471628
3000,471,7,0.00,1,3673,3,34471628
3000,475,19,0.00,1,3652,1,34471628
3000,475,7,0.00,1,3655,1,34471628
3000,476,6,0.00,1,3655,1,34471628
3000,476,18,0.00,1,3653,2,34471628
3000,479,3,0.00,1,3651,4,34471628
3000,479,4,0.00,1,3645,4,34471628
<------------------空行


<------------------空行
3000,483,13,0.00,1,3617,2,34471628
3000,484,14,0.00,1,3614,2,34471628
3000,485,1,0.00,1,3612,1,34471628
3000,486,2,0.00,1,3605,1,34471628
3000,486,19,0.00,1,3605,1,34471628
3000,487,19,0.00,1,3603,1,34471628
3000,487,14,0.00,1,3605,1,34471628
3000,488,13,0.00,1,3603,1,34471628
3000,488,6,0.00,1,3602,1,34471628
3000,491,19,0.00,1,3590,1,34471628
3000,493,7,0.00,1,3579,3,34471628
3000,494,4,0.00,1,3579,4,34471628
<------------------空行
3000,494,19,0.00,1,3579,1,34471628
3000,494,16,0.00,1,3576,3,34471628
3000,495,16,0.00,1,3571,3,34471628
3000,495,14,0.00,1,3568,1,34471628
3000,496,16,0.00,1,3565,3,34471628
3000,496,3,0.00,1,3563,4,34471628
3000,497,4,0.00,1,3563,3,34471628
<------------------空行
3000,502,13,0.00,1,3539,1,34471628
3000,503,13,0.00,1,3535,1,34471628
3000,503,1,0.00,1,3531,3,34471628
3000,503,2,0.00,1,3531,2,34471628
3000,504,6,0.00,1,3521,2,34471628
3000,504,14,0.00,1,3521,1,34471628
3000,504,5,0.00,1,3518,1,34471628
跟服务器上的数据顺序完全一样但就是多出了中间的空行,这跟我望后面处理这些数据带来很大的麻烦,不知道问题出在什么地方,从哪里着手分析呢?

[解决办法]
8维的数组!
晕!
每次输出的结果都是一样的吗?

个人感觉可能的原因是在中间有些数据不符合if()语句的要求,也就是为假!
这样直接输出空字符换行!

把out < <szSQL < <endl; 这条语句拿到if语句里面试试看,验证下!

读书人网 >VC/MFC

热点推荐