0

私が達成しようとしているのは、「ifstream」を使用して外部の.datファイルを開き、各doubleをベクトル配列に読み込むことです。

私が持っているもの:

//Setup I/O
ifstream fileIn;
ofstream fileOut;

//Define vector for file data
vector<double> fileData;

fileIn.open("/FilePath.../checkIn.dat");
//If opening failed, display this text.
if (fileIn.fail( ))
{
    cout << "    Input file opening failed.\n";
    //stop program
    exit(1);
}

私が読んでいるファイル:

2000 1 1225.72 1 463.81 3 200 1 632 2 1500 1 300 2 1800

私はインターネットのあちこちを探していましたが、何か役に立つものを見つけることができません。Javaの「hasNextDouble」に似た関数を探しています。

4

1 に答える 1

3

あなたは Java をあまりにも厳密に模倣しようとしているように思えます (つまり、物事を必要以上に複雑にしています)。

// Open the file
std::ifstream file_in("/FilePath.../checkIn.dat");

// Create the vector, initialized from the numbers in the file:
std::vector<double> fileData((std::istream_iterator<double>(file_in)),
                              std::istream_iterator<double>());

...これで完了です。

于 2012-12-05T08:06:21.077 に答える