次のプログラムでは、6つの長さの文字列ddを読み取り、そのASCIIコードをサイズ3x2の整数配列ipcに格納しています。問題は、ipcに格納されている値が間違っており、後で再印刷したときに値が変更されることです。このような単純なコードで、どうしてこのような明らかな問題が発生するのか、私は驚いています。(私はWin7x64でCode:: Blocks 10.05を使用しています)
#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
どんな種類の助けも大歓迎です。ありがとうございました。