所以我正在尝试从文件中解析一些数据。该程序应该查看每行的第三个值,如果字符串等于“比较”,则查看该行的每个最后一个值,并存储所有行的最小值和最大值。但是,当我尝试编译它时,出现以下错误:
std::stringstream lineStream(line);
,并且在将字符串转换为浮点数以比较和存储最后一个值和最小值时:
strtof(Value);
这是我的代码:
using String = std::string;
int main(int argc, const char * argv[]) {
std::ifstream inputFileStream;
inputFileStream.open("data.dat");
if(!inputFileStream.is_open()){
std::cout<<"error";
return 0;
}
int count;
inputFileStream>>count;
inputFileStream.ignore(1, '\n');
String minValue;
String maxValue;
for(int i = 0; i < count; i++){
String line;
std::getline(inputFileStream, line);
std::stringstream lineStream(line);
String first;
String second;
String third;
std::getline(lineStream, first, ',');
std::getline(lineStream, second, ',');
std::getline(lineStream, third, ',');
String compare="compare";
if(Line_Identifier->compare(compare)==0){
String last;
std::getline(lineStream,last, ',');
if(strtof(last)>strtof(maxValues)){
maxValues=Value;
}
else if(strtof(Value)<strtof(minValues)){
minValues=Value;
}
}
}
return 0;
}
答案 0 :(得分:2)
您应该使用“输入字符串流” std::istringstream
。
std::istringstream lineStream(line);
对于strtof
,您应该使用std::strtof
。