我已经写了以下内容来读取输入文件中的双打,但它看起来很麻烦,我可以使用哪些其他方法?我应该注意哪些优点/缺点?
我认为这种方法最准确,因为不应该有任何二进制< - >十进制转换问题,这是正确的吗?
#include<string>
#include<iostream>
#include<iomanip>
#include<fstream>
#include<sstream>
void Stats::fill()
{
string temp;
stringstream convert;
statFile.open("statsinput.txt");
for(int i = 0; i<maxEntries && !statFile.eof(); i++)
{
getline(statFile, temp);
convert<<temp;
convert>>stats[i];
}
statFile.close();
}
答案 0 :(得分:3)
直接在文件中使用输入操作符?
for(int i = 0; i<maxEntries && statFile >> stats[i]; i++)
;
请记住,所有输入流都继承自相同的基类,因此您可以对所有其他输入流上的stringstream
或cin
等流执行所有操作。
答案 1 :(得分:1)
如果你有现代的C ++(C ++ 11)编译器,你可以使用std :: stof,std :: stod或std :: stold函数。
然后你可以写:
getline(statFile, temp);
double d = std::stod(temp);
的更多信息