我有一个包含3行任意数字的文本文件,如下所示:
3.50001
6.70001
812.333
我想在我的程序中输入并将这3个数字保存到矢量中。它应该逐行读取,所以我假设矢量大小将是3.但是它出现了错误,即文本文件中的行是字符串而不是double。它无法保存到矢量中。如何将这些字符串变为双精度?谢谢。
PS:由于Eclipse,无法正确解析函数std::stod
。
int main(int argc, char* argv[]) {
#include<vector>
#include <string>
string line;
std::vector<double> myvector(3);
ifstream myfile (argv[0]);
if (myfile.is_open())
{
while ( getline (myfile,line) )
{
std::string::size_type sz;
cout << line << '\n';
double line_double = std::stod(line);
myvector.push_back(line_double);
}
myfile.close();