-3
我如何重寫我的readDetails功能,而無需使用STOD()或關於strtod()在C++? 我將使用的編譯器沒有C++ 11啓用,我得到我怎麼可以重寫沒有STOD()
「STOD」在此範圍錯誤
int readDetails(SmallRestaurant sr[])
{
//Declaration
ifstream inf;
//Open file
inf.open("pop_density.txt");
//Check condition
if (!inf)
{
//Display
cout << "Input file is not found!" << endl;
//Pause
system("pause");
//Exit on failure
exit(EXIT_FAILURE);
}
//Declarations and initializations
string fLine;
int counter = 0;
int loc = -1;
//Read
getline(inf, fLine);
//Loop
while (inf)
{
//File read
loc = fLine.find('|');
sr[counter].nameInFile = fLine.substr(0, loc);
fLine = fLine.substr(loc + 1);
loc = fLine.find('|');
sr[counter].areaInFile = stod(fLine.substr(0, loc)); //line using stod
fLine = fLine.substr(loc + 1);
loc = fLine.find('|');
sr[counter].popInFile = stoi(fLine.substr(0, loc));
fLine = fLine.substr(loc + 1);
sr[counter].densityInFile = stod(fLine); //line using stod
counter++;
getline(inf, fLine);
}
//Return
return counter;
}
以下未聲明是我想讀的文本:
人口普查區201,奧陶加縣,阿拉巴馬州| 9.84473419420788 | 1808 | 183.651479494869 人口普查區202,奧陶加縣,阿拉巴馬州| 3.34583234555866 | 2355 | 703.860730836106 人口普查區203,奧陶加縣,阿拉巴馬州| 5.35750339330735 | 3057 | 570.60159846447
來吧,這甚至不是他們要求的轉換。另外,這顯然是一些愚蠢的。 –
@BaummitAugen:他們詢問將字符串轉換爲十進制(數字),這是'std :: istringstream'的作用。 –
@BaummitAugen:關於如何閱讀文件有很多帖子,但它們都略有不同。這個有'|'作爲分隔符以及','。 –