Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

I'm writing code in C++ that is supposed to take a text file containing information on different football players and their combine results, store those

I'm writing code in C++ that is supposed to take a text file containing information on different football players and their combine results, store those players as a vector of objects of the class, and print out those objects. I'm running into a couple problems, which are shown below, along with my code. **EDIT** I did change the dash variable to a float instead of an int, but have the same output

MAIN.CPP:

#include "Combine.h" #include  using namespace std; // main is a global function // main is a global function int main() { // This is a line comment  //cout << "Hello, World!" << endl;   vector players; getPlayersFromFile("CombinePlayers.txt", players); for (int i = 0; players.size(); i++) { cout << players[i] << endl; //cout << "Hello Jack" << endl;   } return 0; }

COMBINE.H:

#ifndef PROJECT1_COMBINE_H #define PROJECT1_COMBINE_H  #include  #include  #include  #include  #include   using namespace std; class Combine { private: string name, college, pos; int height, weight, dash, bench; public: //CONSTRUCTORS  Combine() { name = "John Smith"; college = "University"; pos = "player"; height = -1; weight = -1; dash = -1; bench = -1; } Combine(string name, string college, string pos, int height, int weight, int dash, int bench) { this->name = name; this->college = college; this->pos = pos; setHeight(height); setWeight(weight); setDash(dash); setBench(bench); } //GETTERS  string getName() const { return name; } string getCollege() const { return college; } string getPos() const { return pos; } int getHeight() const { return height; } int getWeight() const { return weight; } int getDash() const { return dash; } int getBench() const { return bench; } //SETTERS  void setName(string name) { this->name = name; } void setCollege(string college) { this->college = college; } void setPos(string pos) { this->pos = pos; } void setHeight(int height) { if (height <= 0) { //Default value  this->height = -1; } else { this->height = height; } } void setWeight(int weight) { if (weight <= 0) { //Default value  this->weight = -1; } else { this->weight = weight; } } void setDash(int dash) { if (dash <= 0) { //Default value  this->dash = -1; } else { this->dash = dash; } } void setBench(int bench) { if (bench <= 0) { //Default value  this->bench = -1; } else { this->bench = bench; } } // Overloaded operators  friend ostream &operator<<(ostream &outs, const Combine &com) { outs << left << setw(25) << com.name; outs << left << setw(25) << com.college; outs << left << setw(25) << com.pos; outs << right << setw(5) << com.height; outs << setw(5) << com.weight; outs << setw(5) << com.dash; outs << setw(5) << com.bench; return outs; } }; void getPlayersFromFile(string filename, vector &players) { ifstream inFile; // Use ../ to get out of the cmake-build-debug folder to find the file  inFile.open("../" + filename); string name = "", college = "", pos = "", header = ""; int height = 0, weight = 0, dash = 0, bench = 0; char comma = ','; // check that the file is in a good state  if (inFile) { // read in the header line  getline(inFile, header); } // loop through all the data in the file  while (inFile && inFile.peek() != EOF) { // read name  getline(inFile, name, ','); // read college  getline(inFile, college, ','); // read pos  getline(inFile, pos, ','); // read height  inFile >> height >> comma; // read weight  inFile >> weight >> comma; // read 40 yard dash  inFile >> dash; // if the file is not in a good state, then there wasn't an integer to read in.  if (!inFile) { // set a default value to class2  dash = 0; // clear the file stream  inFile.clear(); } // read in the comma  inFile >> comma; // read bench press  inFile >> bench; // if the file is not in a good state, then there wasn't an integer to read in.  if (!inFile) { // set a default value to class2  bench = 0; // clear the file stream  inFile.clear(); } // read in the comma  inFile >> comma; // create a Combine object and put it on the back of the vector  players.push_back(Combine(name, college, pos, height, weight, dash, bench)); } inFile.close(); } #endif //PROJECT1_COMBINE_H

CombinePlayers.txt:

Name, College, POS, Height (in), Weight (lbs), 40 Yard, Bench Press Johnathan Abram, Mississippi State, S, 71, 205, 4.45 Paul Adams, Missouri, OT, 78, 317, 5.18, 16 Nasir Adderley, Delaware, S, 72, 206 Azeez Al-Shaair, Florida Atlantic, LB, 73, 234, 16 Otaro Alaka, Texas A&M, LB, 75, 239, 4.82, 20

OUTPUT:

Johnathan Abram Mississippi State S 71 205 4 45 aul Adams Missouri OT 78 317 5 18 16 Nasir Adderley Delaware S 72 206 -1 -1 ez Al-Shaair Florida Atlantic LB 73 234 16 -1 aro Alaka Texas A&M LB 75 239 4 82 20 Texas A&M LB 75 239 -1 -1 0 0 0 0 0 0 0 0

So there are two issues going on in the output. 1.) After the first object, each player's name is cutoff by 2-3 characters in the beginning. 2.) The 40 yard dash numbers are read as two different numbers due to the period (so 4.82 becomes 4 and 82).

If you need more information/context, let me know!

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Databases A Beginners Guide

Authors: Andy Oppel

1st Edition

007160846X, 978-0071608466

More Books

Students also viewed these Databases questions

Question

=+Show that all periodic functions have distributions.

Answered: 1 week ago

Question

CL I P COL Astro- L(1-cas0) Lsing *A=2 L sin(0/2)

Answered: 1 week ago

Question

2. Describe how technology can impact intercultural interaction.

Answered: 1 week ago

Question

7. Define cultural space.

Answered: 1 week ago