从文件中输入羚牛并将其保存到临时内存中?

0 c++ file

我有一个最初为空的结构化数组,有4种数据类型,包括字符串,2个int和1个浮点数.我有一个dvd标题和其他属性的列表(其他3个,其中2个是最后一个是浮点数)保存在文本文件中,我需要将文本文件中的数据输入到我的结构中.这是我的代码,但似乎它不起作用?

        do
        {
           for(int i=0;i<MAX_BOOKS;i++)
           {

                tempTitle= getline(myfile,line);
                temChapters = getline(myfile,line);
                tempReview = getline(myfile,line);
                tempPrice = getline(myfile,line);
           }
        }while(!myfile.eof());
Run Code Online (Sandbox Code Playgroud)

Jer*_*fin 5

返回来自getline您读取的流,而不是您读取数据的字符串.

您还会反复将数据读入同一个地方(line),而不会将其保存在任何地方.

你的循环有缺陷(while (!somefile.eof())基本上总是坏了).

您通常想要的是从重载开始operator>>从流中读取单个逻辑项,然后使用它来填充这些项的向量.

// The structure of a single item:
struct item { 
    std::string title;
    int chapters;
    int review;
    int price;    
};

// read one item from a stream:
std::istream &operator>>(std::istream &is, item &i) { 
    std::getline(is, i.title);
    is >> i.chapters >> i.review >> i.price;
    is.ignore(4096, '\n'); // ignore through end of line.
    return is;
}

// create a vector of items from a stream of items:
std::vector<item> items((std::istream_iterator<item>(myfile)), 
                         std::istream_iterator<item>());
Run Code Online (Sandbox Code Playgroud)