我正在开发一个c ++项目,我需要将一个字符串转换为一个double,但我仍然在这个范围内没有声明错误'stod'。讨厌的回复将不胜感激!
#include <iostream>
#include <string>
#include <sstream>
#include <fstream>
#include <vector>
using namespace std;
struct Station
{
string StationID, StationName;
double Elevation, Latitude, Longitude;
int Date, MXPN, MaxTemp, MinTemp, ObsTime;
};
int main()
{
//Initial Variables
ifstream InputFile;
vector<Station> Entry;
string DummyLine, TempLine;
double TempDouble;
int Counter = 0;
InputFile.open("finalc++.csv");
getline(InputFile, DummyLine);
while (InputFile.good())
{
Entry.push_back(Station());
getline(InputFile, TempLine);
stringstream ss (TempLine);
getline(ss, DummyLine, ',');
Entry[Counter].StationID = DummyLine;
getline(ss, DummyLine, ',');
Entry[Counter].StationName = DummyLine;
getline(ss, DummyLine, ',');
Entry[Counter].Elevation = stod(DummyLine);
Counter++;
}
for (int i = 200; i <= 500; i++)
{
cout << Entry[i].StationID << endl;
cout << Entry[i].StationName << endl;
}
return 0;
}
是否有一些我必须包含的库才能使用它? 顺便说一句我在Windows机器x86上使用代码块12.11。
答案 0 :(得分:1)
这是gcc 4.x的已知错误
启用c ++ 11 stardarts,取决于你的IDE,在CodeBlocks中转到: 设置,编译器 并检查“有g ++遵循c ++ 11 ISO ......” 如果你正在使用gcc编译器;