このコードは、次の形式の 2 つの .dat ファイルを読み取る必要があります。
xy 強度 例:
1 1 70
1 2 0.3
1 3 5
1 つのファイルを読み取って正しい情報を表示し、他のファイルでも同じ情報を表示しますが、2 つのファイルを読み取ろうとすると、正しくコンパイルされているにもかかわらず「セグメンテーション違反」が発生します。一度に1つのファイルを実行するとうまくいくので、その理由は100%わかりません。ファイルを読み込む方法が気に入らないかもしれません。これが機能するようになったら、ベクターに移行しますが、それらについてはまだ学習中であり、最初に配列を釘付けにしたいと考えています。
int main()
{
std::ifstream file1("p001_1.dat");
std::ifstream file1_2("p001_2.dat");
double intensity;
int i;
int j;
double pic1[1392][1040]; //number of pixels
double pic1_2[1392][1040];
// reads in file creating an array [x][y] = intensity
cout<<"Reading in: file1"<<endl;
if (file1.is_open())
{
file1.seekg(0);
while (!file1.eof())
{
file1 >> i >> j >> intensity;
pic1[i][j] = intensity;
//cout<<i<<endl
}
file1.close();
//file1.clear();
}
else {
cout << "Error, cannot open file 1"; }
cout << "Reading in file 2" << endl;
if (file1_2.is_open())
{
file1_2.seekg(0);
while (!file1_2.eof())
{
file1_2 >> i >> j >> intensity; //
pic1_2[i][j] = intensity;
}
file1_2.close();
//file1_2.clear();
//cout<<i<<endl;
}
else {
cout << "Error, cannot open file 1_2"; }
//A LOAD OF CALCULATIONS//