ifsream中的问题

想问一下这个,Books结构体有八个成员,但是每次读入只有一个量,那该怎么做才能做到输入完8个成员后再到下一位呢

struct books{
    string id;
    string isbn;
    string name;
    string author;
    string publishing;
    string publishdate;
    string price;
    string description;
    books *next;
};
void func()
{
    ifstream ifs;
    ifs.open("books.txt",ios::in);
    if(ifs.is_open()==false)
    {
        cout<<"文件打开失败";
    }
    string buf;
    int flag=0;
    while(getline(ifs,buf,'\t'))
    { 
        vectorbook;
        books tmp;
    }