私は C++ に非常に慣れていないので、テキスト ファイルを構造体に読み込もうとしています。テキストファイルは1行目がダブルで、それ以降の行がプレゼント名(願い事)として存在します。ウィッシュの double および vector として存在する構造体 Wishlist を作成しました。だから私は次のことをしました:
#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 とギフト名で構成されます。