|
|
今天使用vector想要保存一点数据,结果发现一些奇特的现象,也许是我不太熟它的用法,大家就先看看把
vector<WORD> buffer[4][15];
WORD indices[6];
FILE *fp = fopen("xxxx.dat","rb");
int i,j,k;
for(k = 0;k<15;k++)
{
for(j = 0;j<16;j++)
{
for(i=0;i<16;i++)
{
fscanf(fp,"%d,%d,%d,%d,%d,%d\n",indices,indices+1,indices+2,indices+3,indices+4,indices+5);
buffer[0][k].push_back(*indices);
buffer[0][k].push_back(*(indices+1));
buffer[0][k].push_back(*(indices+2));
buffer[0][k].push_back(*(indices+3));
buffer[0][k].push_back(*(indices+4));
buffer[0][k].push_back(*(indices+5));
}
}
for(j = 0;j<8;j++)
{
for(i=0;i<8;i++)
{
fscanf(fp,"%d,%d,%d,%d,%d,%d\n",indices,indices+1,indices+2,indices+3,indices+4,indices+5);
buffer[1][k].push_back(*indices);
buffer[1][k].push_back(*(indices+1));
buffer[1][k].push_back(*(indices+2));
buffer[1][k].push_back(*(indices+3));
buffer[1][k].push_back(*(indices+4));
buffer[1][k].push_back(*(indices+5));
}
}
for(j = 0;j<4;j++)
{
for(i=0;i<4;i++)
{
fscanf(fp,"%d,%d,%d,%d,%d,%d\n",indices,indices+1,indices+2,indices+3,indices+4,indices+5);
buffer[2][k].push_back(*indices);
buffer[2][k].push_back(*(indices+1));
buffer[2][k].push_back(*(indices+2));
buffer[2][k].push_back(*(indices+3));
buffer[2][k].push_back(*(indices+4));
buffer[2][k].push_back(*(indices+5));
}
}
for(j = 0;j<2;j++)
{
for(i=0;i<2;i++)
{
fscanf(fp,"%d,%d,%d,%d,%d,%d\n",indices,indices+1,indices+2,indices+3,indices+4,indices+5);
buffer[3][k].push_back(*indices);
buffer[3][k].push_back(*(indices+1));
buffer[3][k].push_back(*(indices+2));
buffer[3][k].push_back(*(indices+3));
buffer[3][k].push_back(*(indices+4));
buffer[3][k].push_back(*(indices+5));
}
}
}
fclose(fp);
问题是循环的时候发现最开始的时候K的值一直是0,循环了多次之后到buffer[0][0]的size超过了某个值(猜测)后才开始递增。而且是在最外层循环里面K刚递增完后,一进去到push_back的时候k就变成0了。郁闷死了,这么简单的循环都出错,不明白为什么 |
|