ファイル(area.inp)から配列にデータを読み込むために、次のコードを記述しました。画面にデータを表示すると、最初の "for"ループは正しい数字を表示します(コードはファイルから数字を正しく読み取ります)が、2番目の "for"ループは誤った数字のセットを示します。私はこの問題の周りに頭を浮かべることはできません。私はこの問題に関する指導を感謝します。コメント欄で述べたようにファイルからのデータを配列に格納する
が
001.000 003.000
002.000 004.000
006.000 005.000
004.000 002.000
002.000 001.000
コード
#include <iostream>
#include <iomanip>
#include <fstream>
#include <algorithm>
#include <iterator>
using namespace std;
int main(int argc, char **argv)
{
int j=0;
double X[j];
double Y[j];
static double *p;
double *q;
p=X;
q=Y;
//**** Counting the number of lines
ifstream myfile("area.inp");
myfile.unsetf(ios_base::skipws);
int points = count(
istream_iterator<char>(myfile),
istream_iterator<char>(),
'\n');
cout << "Number of data in file: " << points << "\n";
//**** Open data file and result
cout <<"file is open"<< endl;
ifstream infile;
infile.open("area.inp", ios::in);
cout <<"Reading data from file"<< endl;
for (j=0; j<points; j++)
{
cout << std::setprecision(3) << std::fixed;;
infile >> X[j] >> Y[j];
cout << "Value of X["<<j<<"]: " << X[j] << endl;
cout << "Value of Y["<<j<<"]: " << Y[j] << endl;
}
cout <<"Showing numbers stored in array"<< endl;
for (j=0; j<points; j++)
{
cout << "Value of X["<<j<<"]: " << X[j] << endl;
cout << "Value of Y["<<j<<"]: " << Y[j] << endl;
}
infile.close();
return 0;
}
Number of data in file: 5
file is open
Reading data from file
Value of X[0]: 1.000
Value of Y[0]: 3.000
Value of X[1]: 2.000
Value of Y[1]: 4.000
Value of X[2]: 6.000
Value of Y[2]: 5.000
Value of X[3]: 4.000
Value of Y[3]: 2.000
Value of X[4]: 2.000
Value of Y[4]: 2.000
Showing numbers stored in array
Value of X[0]: 5.000
Value of Y[0]: 3.000
Value of X[1]: 2.000
Value of Y[1]: 4.000
Value of X[2]: 4.000
Value of Y[2]: 5.000
Value of X[3]: 4.000
Value of Y[3]: 2.000
Value of X[4]: 2.000
Value of Y[4]: 2.000
------------------
(program exited with code: 0)
Press return to continue
ルックを変更してみてくださいなかった理由。ダブルX [j]; '。 'X'はいくつの要素を格納できますか? – NathanOliver
'j'が定数式でないとき、' double X [j]; 'は標準のC++ではありません。 – crashmstr