0
在以下程序中,我正在读取6长度字符串dd并将其ascii代码存储在大小为3x2的整数数组ipcc中。问题在于,存储在ipc中的值是错误的,并且在我重新打印它们时会稍后改变它们。我很惊讶,这样一个简单的代码怎么会出现这样一个明显的问题。 (我使用的代码:: Blocks的10.05上Win7的X64)在C++中自行更改数组值
#include<iostream>
using namespace std;
int main()
{ char dd[5];
int ipc[2][1];
cin.get(dd,6);
for(int i=0;i<3;i++)
{ for(int j=0;j<2;j++)
{ ipc[i][j]=int(dd[j+2*i]);
cout<<ipc[i][j]<<endl;
}
}
cout<<"------"<<endl;
for(int i=0;i<3;i++)
{ for(int j=0;j<2;j++)
{ cout<<ipc[i][j]<<endl; }
}
}
如果给定的输入123456,输出为:
49
50
51
52
53
2
------
49
51
51
53
53
2
任何形式的帮助将是非常赞赏。谢谢。
不数组从0开始,所以为什么我需要定义IPC [3] [2]? – xan99 2012-08-09 11:10:59
'char dd [5];''和'cin.get(dd,6);'是否也存在问题? '\ 0'将自动存储在dd [5]。 – tinman 2012-08-09 11:11:56
@ xan99数组的索引从0开始计数,但大小(您在此指定的大小)不是索引。 – Nobody 2012-08-09 11:12:18