C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[56740] 야구 선수 검색프로그램 두번째 질문.. ㅠ
질문 [] 1115 읽음    2009-04-25 04:55
클래스를 쓰고 백터를 활용해서..

야구선수 데이터로 팀이름으로 검색하면 그팀에 들어가있는 선수의 선수정보 다나오게하기

이름으로 찾으면 그 이른의 한선수에 대한 정보 나오게 하기

더있지만 대충 이렇게 검색할수 있게해야되는데

현재 시작부터 잘 안되네요;

데이터 파일을 불러올 함수를 만드는중인데

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<

+ -

관련 글 리스트
56740 야구 선수 검색프로그램 두번째 질문.. ㅠ 질문 1115 2009/04/25
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.