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