현재 코드의 배열 Transversing :C에서 구조체 오류 ++
const int MAX_CODENAME = 25;
const int MAX_SPOTS = 5;
struct Team {
string TeamName[MAX_CODENAME];
short int totalLeagueGames;
short int leagueWins;
short int leagueLoses;
};
//GLOBAL VARIABLES:
Team league[MAX_SPOTS];
void addTeams(){
int i = 0; //first loop
int j; //second loop
while(i < MAX_SPOTS){
cout << "****** ADD TEAMS ******" << endl;
cout << "Enter the teams name " << endl;
scanf("%s", league[i].TeamName) ;
}
void searchTeam(){
string decider[MAX_CODENAME];
cout << "Please enter the team name you would like the program to retrieve: " << endl;
cin >> decider[MAX_CODENAME];
for(int i = 0; i < MAX_SPOTS; i++){
if(decider == league[i].TeamName){
cout << endl;
cout << league[i].TeamName << endl;
break;
}else{
cout << "Searching...." << endl;
}
}
을}
나는 정말 그 작동하지 않는 이유를 잘 모릅니다하지만 이러한 모든과 같은 임시 수입 헤더 파일하지만 프로그램이 충돌을 포함했다 내가 데이터를 입력 한 다음 검색을 시도 할 때. 나는 죽음의 원을 얻었고 프로그램이 응답하지 않습니다. 다음에 라고 말했습니다. 프로세스는 255 (0xFF)을 반환했습니다. 그것은 심지어 밖으로 넣어하지 않습니다 검색 .... 그 이름을 입력하자마자 프로그램은 실질적으로 포기합니다.
위대한 포인터를 사용하여 최적화 할 수도 있습니다.
tl; 실행 시간 오류로 인해 이름을 입력하자마자 검색이 실패합니다. 그리고 기록을 위해 내가 입력 한 이름이 유효한지 확인했습니다.
배열의 크기가 MAX_CODENAME이면 마지막 요소의 인덱스는 MAX_CODENAME - 1입니다. – Xatyrian
stringName [MAX_CODENAME]; '문자열 배열을 만든다.나는 팀이 하나의 이름만을 가질 것이라고 생각한다 :'string TeamName;'('string'은'std :: string'이라고 가정한다.) –
scanf가 아니라 iostreams를 사용하라. 배열이 아닌 std :: vector를 사용하십시오. –