Чтение CSV-файла (не компилируется: сравнение между указателем и целым числом не допускается) - PullRequest
0 голосов
/ 09 декабря 2018

Итак, я читаю 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 ++.Любая помощь будет полезна в выполнении этого кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...