클래스를 쓰고 백터를 활용해서..
야구선수 데이터로 팀이름으로 검색하면 그팀에 들어가있는 선수의 선수정보 다나오게하기
이름으로 찾으면 그 이른의 한선수에 대한 정보 나오게 하기
더있지만 대충 이렇게 검색할수 있게해야되는데
현재 시작부터 잘 안되네요;
데이터 파일을 불러올 함수를 만드는중인데
istream& operator>>( istream& in, Player& player)
뭔가 알수없는 오류가나길래
여기에 while loop안에 in>>temp.team; 이부분을 잘들어갔나 확인해보려고
cout<<temp.team; 을 해봤더니
JayJayBALJayJayBALJayJayBALJayJayBALJayJayBALJayJayBALJayJayBALJayJayBAL
JayJayBALJayJayBALJayJayBALJayJayBALJayJayBALJayJayBALJayJayBALJayJayBAL
JayJayBALJayJayBALJayJayBALJayJayBALJayJayBALJayJayBALJayJayBALJayJayBAL
JayJayBALJayJayBALJayJayBALJayJayBALJayJayBALJayJayBALJayJayBALJayJayBAL
JayJayBALJayJayBALJayJayBALJayJayBALJayJayBALJayJayBALJayJayBALJayJayBAL
JayJayBALJayJayBALJayJayBALJayJayBALJayJayBALJayJayBALJayJayBALJayJayBAL
JayJayBALJayJayBALJayJayBALJayJayBAL......
이렇게 무한으로 나오더라구요;
게다가 팀이름은 BAL 3글자인데 이름 부분까지 넘어가고
(과제에 팀이름은 3캐릭터 이름은 20캐릭터이내라고 정해져있는..)
데이터는 대략 이런식 입니다 (원본은 훨씬 깁니다;)
--------------------------------------------------------
팀 선수 배트 히트 더블 트리플 홈런 (이순서예요;)
--------------------------------------------------------
BAL Jay Payton 338 82 10 2 7
FLA Chris Volstad 26 3 2 0 0
BOS Jason Varitek 423 93 20 0 13
BOS J.D. Drew 368 103 23 4 19
STL Chris Carpenter 5 0 0 0 0
CHW Paul Konerko 438 105 19 1 22
COL Jason Hirsh 4 0 0 0 0
MIL Mike Rivera 62 19 5 0 1
HOU Doug Brocail 0 0 0 0 0
PHI Chad Durbin 9 1 0 0 0
CHW John Danks 6 1 0 0 0
COL Doug Bernier 4 0 0 0 0
SD Josh Geer 9 1 0 0 0
BOS Craig Hansen 0 0 0 0 0
CHC Jim Edmonds 250 64 17 2 19
PHI Scott Eyre 0 0 0 0 0
STL Albert Pujols 524 187 44 0 37
HOU Jose Castillo 32 9 1 0 0
COL Jorge De La Rosa 40 6 0 0 0
BAL Alex Cintron 133 38 5 1 1
MIL Gabe Kapler 229 69 17 2 8
ATL Yunel Escobar 514 148 24 2 10
TEX Gerald Laird 344 95 24 0 6
NYY Darrell Rasner 1 0 0 0 0
TOR Travis Snider 73 22 6 0 2
SD Trevor Hoffman 0 0 0 0 0
CIN Bronson Arroyo 61 12 3 0 1
CIN Edinson Volquez 61 6 0 0 0
--------------------------------------------------------
이건 제가 지금 쓴 코드구요;
위에서말한 선언안되있다는 부분이랑
그 데이터파일로 어떻게 팀이름 치면 팀 선수 다나오게하고
이름으로 찾으면 그한선수만 정보나오게하고 그런것도 좀
설명과 함께 도와주셨으면 합니다 ㅠㅠ
아 그리고 이름 같은경우 Jay Payton 이런식으로 스페이스가 한번있는데
이걸 어떻게 하나로 쳐서 집어넣죠?;;
#ifndef PLAYER_
#define PLAYER_
using namespace std;
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
class Player
{
public:
Player(){}
struct info
{
char team[3];
char name[20];
int bats;
int hits;
int doubles;
int triples;
int homeruns;
double batAve;
double slugPct;
};
vector<info> data;
};
ostream& operator<<( ostream& out, const Player& player);
istream& operator>>( istream& in, Player& player);
/*--------------------------------------------------------------------------
Name: operator>>
Purpose:
Receive:
Return:
-------------------------------------------------------------------------*/
istream& operator>>( istream& in, Player& player)
{
Player::info temp;
while (!in.eof())
{
in>>temp.team;
cout<<temp.team;
in>>temp.name;
cout<<temp.name;
in>>temp.bats;
in>>temp.hits;
in>>temp.doubles;
in>>temp.triples;
in>>temp.homeruns;
player.data.push_back(temp);
}
return in;
}
ostream& operator<<( ostream& out, const Player& player)
{
vector <Player::info> temp;
for(int i=0;i<player.data.size();i++)
{
out<< player.data[i].team;
}
return out;
}
#endif
int main()
{
Player A;
ifstream InStream;
string InFile;
cin>>InFile;
InStream.open( InFile.c_str(), ios::in );
cout<<InStream;
if (InStream.fail())
{
cerr<<"\n*** Unable to read from '"<<InFile<<"' ***\n\n";
exit( 1 );
}
InStream>>A;
cout<