我这样写的循环没错吧,但为什么得不到正确结果
for (int j=1;j<=num;j++)
{ icWrite[0]=0x00;
icWrite[1]=0x00;
icWrite[2]=5; //len
icWrite[3]=0x00;
icWrite[4]=0xb2;
icWrite[5]=j; //p1
icWrite[6]=0x24; //p2
icWrite[7]=recordnum;
icWrite[8]=0x00;
for(st=0;st<8;st++)
icWrite[8]=icWrite[8]^icWrite[st];
cpu_protocol(icdev,9,icWrite,icRead);
ShowMessage(AnsiString(" record + ")+j+"."+icRead[2]);
if(icRead[2]==recordnum+2)
{for(i=0;i<recordnum;i++)
ch1[(j-1)*(recordnum+2)+i]=icRead[i+3];
ch1[j*recordnum]='\r';
ch1[j*recordnum+1]='\n';
}
}
这样写应该没错吧,但为什么我的ch1中的内容只是j等于1时的内容呢,而且循环也执行了怎么回事啊?
问题点数:0、回复次数:3Top
1 楼leolmncn(太想飞了)回复于 2003-08-04 11:58:51 得分 0
说明只有在J=1时if(icRead[2]==recordnum+2)才成立嘛。
Top
2 楼Iamsnowgirl(snowgirl)回复于 2003-08-04 12:22:20 得分 0
不是的,这个条件在j小于num的时候都成立的,我测试过,只是在赋值给ch1的时候出错了,真是很奇怪Top
3 楼leolmncn(太想飞了)回复于 2003-08-04 12:55:03 得分 0
设断点Watch一下Top



