Итак, я читаю CSV-файл, который содержит данные: 1920-1970, "3230", "793", "1,281", "670", "352", "170",
КогдаЯ компилирую код, который выдает ошибку: Сравнение между указателем и целым числом недопустимо, в строках кода, где я сравниваю, следующим образом:
while(in.peek()!="\"")
Полный код:
struct Demographics{
int ymin, ymax, popend, popgro, birth, death, immig, emmig;
};
int getcommaint(ifstream& in){
char c;
in>>c;
int retval=0;
int val=0;
while(in.peek()!="\""){
retval*=1000;
in>>val;
if(in.peek()==',')
cin>>c;
retval+=val;
}
in>>c>>c;
return retval;
}
std::istream& operator>>(std::istream& stream, Demographics& d){
ifstream in;
char c;
in.open("file.csv");
if(!in.is_open()){
cout<<"No file found"<<endl;
}
else{
while(!in.eof()){
in>>d.ymin>>c>>d.ymax>>c;
if(in.peek()=="\""){
d.popend=getcommaint(in);
d.popgro=getcommaint(in);
d.birth=getcommaint(in);
d.death=getcommaint(in);
d.immig=getcommaint(in);
d.emmig=getcommaint(in);
}
else{
in>>d.popend>>d.popgro>>d.birth>>d.death>>d.immig>>d.emmig;
}
cout<<d.popend<<" "<<d.popgro<<" "<<d.birth<<" "<<d.death<<" "
<<d.immig<<" "<<d.emmig<<endl;
}
}
in>>c;
in.close();
}
Я просто не понимаю эту ошибку, так как я начинающий в c ++.Любая помощь будет полезна в выполнении этого кода.