gpt4 book ai didi

c++ - 将文件读入结构 (c++)

转载 作者:太空狗 更新时间:2023-10-29 20:44:08 25 4
gpt4 key购买 nike

<分区>

我是 C++ 的新手,我想将文本文件读入结构。文本文件的第一行有一个 double,之后的几行作为礼物名称(愿望)存在。我创建了一个结构体 Wishlist,它以 double 和愿望 vector 的形式存在。所以我做了以下事情:

#include <iostream>
#include <fstream>
#include <vector>
#include <string>

using namespace std;

struct Gift
{
double price;
string name;
};

typedef vector<Gift> Giftstore;
typedef vector<string> Wishes;


int size(Giftstore& g) {return static_cast<int>(g.size());}

int size(Wishes& w) {return static_cast<int>(w.size());}


struct Wishlist
{
double budget;
Wishes wishes;
};


void reading_wishlist(ifstream& file, Wishlist& wish_list)
{
if (file)
{
double money;

file>>money;
wish_list.budget<<money;
}

while(file)
{
string name;
getline(file, name)
wish_list.wishes.push_back(name);
}

file.close();
};


void print(Wishlist wish_list)
{
cout<<"Budget: "<<wish_list.budget<<endl;
cout<<"Wishes: "<<endl;

for(int i=0; i<size(wish_list.wishes()); i++)
{
cout<<wish_list.wishes[i]<<endl;
}
};

int main () {

ifstream file;
string filename;
cout<<"Give a wishlist file: ";
cin>>filename;

file.open(filename)
reading_wishlist(filename, wish_list);
print(wish_list)

return 0;
}

当然,在尝试构建和运行它时,我再次赢得了一些错误奖励!第一个是说:(引用:wish_list.budget<

二元运算符的“double”和“double”类型的操作数无效<<

这是什么意思?我是否必须重新定义运算符 << ?或者我可以将 double 读取为 Cstring,然后将其更改为 double 吗?

处理此问题的最佳方法是什么?更好:如何从文件中读取不同类型?由于我还必须将文件读入结构 Giftstore,其中文本文件的每一行都包含 double 名称和礼品名称。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com