2 ashine0816 ashine0816 于 2013.08.20 23:57 提问

字符数组连接为整型,输出非预期问题

从文件中读取数据,在连接成整型,头一二个没问题,第三个就全是非预期的数值,求解
文件读取查不出什么问题。
char dicii[256*sizeof(int)] = {0};
char dici1[256][sizeof(int)] = {0};
int dici[256] = {0};
//.........省略
fin.seekg(0,std::ios::cur);
fin.read(cpq,3*sizeof(long long)); //没问题
fin.read(dicc,256); //没问题
fin.read(dicii,256*sizeof(int));
for(int i=0,t=0;i<3;i++){
for(int j=0;j<sizeof(long long);j++){
cpq1[i][j] = cpq[t];
t++;
}
}
for(int i=0;i<3;i++) icpq[i] = (long long)cpq1[i]; //这个输出正常
for(int i=0,t=0;i<256;i++){
for(int j=0;j<sizeof(int);j++){
dici1[i][j] = dicii[t];
t++;
}
}
for(int i=0;i<256;i++) dici[i] = (int)dici1[i]; //连接后输出非预期

1个回答

liuzuyi200
liuzuyi200   2013.08.21 13:53
已采纳

dici[i]是二维数组,在输出时,数组移动的步长是一行,就是说先定位在数组的首地址,当循环继承进行时,会移动到下一行,依次如上移动

ashine0816
ashine0816 我把dicc[256]放到最后读取,就可以了,不知道为什么?dicc[256]是char型
4 年多之前 回复
ashine0816
ashine0816 我是按字节写和读取的,连接那里有两个星号提问不能显示不出来。开始都好好的,被我一改就没戏了,也找不出问题
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!