0

我试图完成的是使用“ifstream”打开一个外部 .dat 文件,然后将每个双精度读入向量数组。

是)我有的:

//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 回答