Vector printing incorrect data












1















Can someone tell my why my program prints wrong values?
I've mostly followed an youtube video how to use vectors. And the program which was written, i was able to run it. I tried to implement the same method for my program which is for cars (video was for students). But i'm having problems. Funny part is, that the student program ran well, i don't remember changing anything to it, and now it also doesn't print anything at all.



So i'm trying to make a program that inputs car brand, year and price into a vector of a class and then print out all the stored information. But i'm currently getting mixed results.
I'm either getting blank spaces for results or some huge numbers and blank space for the brand (string)



When i'm not using references & i get blank results, with & i get what i've written below.



Does anyone have an idea?



When i input:
brand - Lambo
year - 1997
price 25000



I get:
Car brand:
Car year: 2686588
Car price: 6.95144e-308





main.cpp



#include <iostream>
#include <string>
#include "Car.h"
#include <vector>


using namespace std;

Car::Car(){

}
Car::Car(string brand, int year, double price){
brand;
year;
price;
}
Car::~Car(){

}
string Car::getBrand() const{
return brand;
}
int Car::getYear() const{
return year;
}
double Car::getPrice()const{
return price;
}

void Car::setBrand(string brand){
brand;
}
void Car::setYear(int year){
year;
}
void Car::setPrice(double price){
price;
}




void enterData(vector<Car>&);
void showData(const vector<Car>&);

int main(){

vector<Car> myGarage;
int chc;

cout << "-- M A I N M E N U --nn";
do{
cout << "Please make a choicenn";
cout << "1. Enter car details" << endl;
cout << "2. Show car details" << endl;
cout << "3. Exit" << endl;

cin >> chc;
switch(chc){
case 1:
enterData(myGarage);
break;
case 2:
showData(myGarage);
break;
case 3:
cout << "Have a nice day!";
break;
}

}
while(chc != 3);

}

void enterData(vector<Car>& newMyGarage){
string brand;
int year;
double price;

cout << "How many cars are in your garage?";
int garageSize;
cin >> garageSize;

for(int i = 0; i < garageSize; i++){
cout << "Car brand: ";
cin >> brand;
cout << "Car year: ";
cin >> year;
cout << "Car price: ";
cin >> price;

Car newCar(brand, year, price);
newMyGarage.push_back(newCar);
cout << endl;
}



}
void showData(const vector<Car>& newMyGarage){
unsigned int size = newMyGarage.size();
for(unsigned int s = 0; s < size; s++){
cout << "Car brand: " << newMyGarage[s].getBrand() << endl;
cout << "Car year: " << newMyGarage[s].getYear() << endl;
cout << "Car price: " << newMyGarage[s].getPrice() << endl;
cout << endl;
}

}


header file Car.h



#ifndef CAR_H_INCLUDED
#define CAR_H_INCLUDED
#include <iostream>
#include <string>

using namespace std;

class Car{
public:
string brand;
int year;
double price;
Car();
Car(string, int, double);
~Car();
string getBrand() const;
int getYear() const;
double getPrice() const;
void setBrand(string);
void setYear(int);
void setPrice(double);


};
#endif // CAR_H_INCLUDED









share|improve this question























  • In the overloaded constructor, you do not assign any values to the class variables. (the same for the set functions as well) ... so the output is uninitialized garbage values for year and price, the brand is likely an empty string so it appears to be blank.

    – Paul T.
    Nov 23 '18 at 2:42


















1















Can someone tell my why my program prints wrong values?
I've mostly followed an youtube video how to use vectors. And the program which was written, i was able to run it. I tried to implement the same method for my program which is for cars (video was for students). But i'm having problems. Funny part is, that the student program ran well, i don't remember changing anything to it, and now it also doesn't print anything at all.



So i'm trying to make a program that inputs car brand, year and price into a vector of a class and then print out all the stored information. But i'm currently getting mixed results.
I'm either getting blank spaces for results or some huge numbers and blank space for the brand (string)



When i'm not using references & i get blank results, with & i get what i've written below.



Does anyone have an idea?



When i input:
brand - Lambo
year - 1997
price 25000



I get:
Car brand:
Car year: 2686588
Car price: 6.95144e-308





main.cpp



#include <iostream>
#include <string>
#include "Car.h"
#include <vector>


using namespace std;

Car::Car(){

}
Car::Car(string brand, int year, double price){
brand;
year;
price;
}
Car::~Car(){

}
string Car::getBrand() const{
return brand;
}
int Car::getYear() const{
return year;
}
double Car::getPrice()const{
return price;
}

void Car::setBrand(string brand){
brand;
}
void Car::setYear(int year){
year;
}
void Car::setPrice(double price){
price;
}




void enterData(vector<Car>&);
void showData(const vector<Car>&);

int main(){

vector<Car> myGarage;
int chc;

cout << "-- M A I N M E N U --nn";
do{
cout << "Please make a choicenn";
cout << "1. Enter car details" << endl;
cout << "2. Show car details" << endl;
cout << "3. Exit" << endl;

cin >> chc;
switch(chc){
case 1:
enterData(myGarage);
break;
case 2:
showData(myGarage);
break;
case 3:
cout << "Have a nice day!";
break;
}

}
while(chc != 3);

}

void enterData(vector<Car>& newMyGarage){
string brand;
int year;
double price;

cout << "How many cars are in your garage?";
int garageSize;
cin >> garageSize;

for(int i = 0; i < garageSize; i++){
cout << "Car brand: ";
cin >> brand;
cout << "Car year: ";
cin >> year;
cout << "Car price: ";
cin >> price;

Car newCar(brand, year, price);
newMyGarage.push_back(newCar);
cout << endl;
}



}
void showData(const vector<Car>& newMyGarage){
unsigned int size = newMyGarage.size();
for(unsigned int s = 0; s < size; s++){
cout << "Car brand: " << newMyGarage[s].getBrand() << endl;
cout << "Car year: " << newMyGarage[s].getYear() << endl;
cout << "Car price: " << newMyGarage[s].getPrice() << endl;
cout << endl;
}

}


header file Car.h



#ifndef CAR_H_INCLUDED
#define CAR_H_INCLUDED
#include <iostream>
#include <string>

using namespace std;

class Car{
public:
string brand;
int year;
double price;
Car();
Car(string, int, double);
~Car();
string getBrand() const;
int getYear() const;
double getPrice() const;
void setBrand(string);
void setYear(int);
void setPrice(double);


};
#endif // CAR_H_INCLUDED









share|improve this question























  • In the overloaded constructor, you do not assign any values to the class variables. (the same for the set functions as well) ... so the output is uninitialized garbage values for year and price, the brand is likely an empty string so it appears to be blank.

    – Paul T.
    Nov 23 '18 at 2:42
















1












1








1








Can someone tell my why my program prints wrong values?
I've mostly followed an youtube video how to use vectors. And the program which was written, i was able to run it. I tried to implement the same method for my program which is for cars (video was for students). But i'm having problems. Funny part is, that the student program ran well, i don't remember changing anything to it, and now it also doesn't print anything at all.



So i'm trying to make a program that inputs car brand, year and price into a vector of a class and then print out all the stored information. But i'm currently getting mixed results.
I'm either getting blank spaces for results or some huge numbers and blank space for the brand (string)



When i'm not using references & i get blank results, with & i get what i've written below.



Does anyone have an idea?



When i input:
brand - Lambo
year - 1997
price 25000



I get:
Car brand:
Car year: 2686588
Car price: 6.95144e-308





main.cpp



#include <iostream>
#include <string>
#include "Car.h"
#include <vector>


using namespace std;

Car::Car(){

}
Car::Car(string brand, int year, double price){
brand;
year;
price;
}
Car::~Car(){

}
string Car::getBrand() const{
return brand;
}
int Car::getYear() const{
return year;
}
double Car::getPrice()const{
return price;
}

void Car::setBrand(string brand){
brand;
}
void Car::setYear(int year){
year;
}
void Car::setPrice(double price){
price;
}




void enterData(vector<Car>&);
void showData(const vector<Car>&);

int main(){

vector<Car> myGarage;
int chc;

cout << "-- M A I N M E N U --nn";
do{
cout << "Please make a choicenn";
cout << "1. Enter car details" << endl;
cout << "2. Show car details" << endl;
cout << "3. Exit" << endl;

cin >> chc;
switch(chc){
case 1:
enterData(myGarage);
break;
case 2:
showData(myGarage);
break;
case 3:
cout << "Have a nice day!";
break;
}

}
while(chc != 3);

}

void enterData(vector<Car>& newMyGarage){
string brand;
int year;
double price;

cout << "How many cars are in your garage?";
int garageSize;
cin >> garageSize;

for(int i = 0; i < garageSize; i++){
cout << "Car brand: ";
cin >> brand;
cout << "Car year: ";
cin >> year;
cout << "Car price: ";
cin >> price;

Car newCar(brand, year, price);
newMyGarage.push_back(newCar);
cout << endl;
}



}
void showData(const vector<Car>& newMyGarage){
unsigned int size = newMyGarage.size();
for(unsigned int s = 0; s < size; s++){
cout << "Car brand: " << newMyGarage[s].getBrand() << endl;
cout << "Car year: " << newMyGarage[s].getYear() << endl;
cout << "Car price: " << newMyGarage[s].getPrice() << endl;
cout << endl;
}

}


header file Car.h



#ifndef CAR_H_INCLUDED
#define CAR_H_INCLUDED
#include <iostream>
#include <string>

using namespace std;

class Car{
public:
string brand;
int year;
double price;
Car();
Car(string, int, double);
~Car();
string getBrand() const;
int getYear() const;
double getPrice() const;
void setBrand(string);
void setYear(int);
void setPrice(double);


};
#endif // CAR_H_INCLUDED









share|improve this question














Can someone tell my why my program prints wrong values?
I've mostly followed an youtube video how to use vectors. And the program which was written, i was able to run it. I tried to implement the same method for my program which is for cars (video was for students). But i'm having problems. Funny part is, that the student program ran well, i don't remember changing anything to it, and now it also doesn't print anything at all.



So i'm trying to make a program that inputs car brand, year and price into a vector of a class and then print out all the stored information. But i'm currently getting mixed results.
I'm either getting blank spaces for results or some huge numbers and blank space for the brand (string)



When i'm not using references & i get blank results, with & i get what i've written below.



Does anyone have an idea?



When i input:
brand - Lambo
year - 1997
price 25000



I get:
Car brand:
Car year: 2686588
Car price: 6.95144e-308





main.cpp



#include <iostream>
#include <string>
#include "Car.h"
#include <vector>


using namespace std;

Car::Car(){

}
Car::Car(string brand, int year, double price){
brand;
year;
price;
}
Car::~Car(){

}
string Car::getBrand() const{
return brand;
}
int Car::getYear() const{
return year;
}
double Car::getPrice()const{
return price;
}

void Car::setBrand(string brand){
brand;
}
void Car::setYear(int year){
year;
}
void Car::setPrice(double price){
price;
}




void enterData(vector<Car>&);
void showData(const vector<Car>&);

int main(){

vector<Car> myGarage;
int chc;

cout << "-- M A I N M E N U --nn";
do{
cout << "Please make a choicenn";
cout << "1. Enter car details" << endl;
cout << "2. Show car details" << endl;
cout << "3. Exit" << endl;

cin >> chc;
switch(chc){
case 1:
enterData(myGarage);
break;
case 2:
showData(myGarage);
break;
case 3:
cout << "Have a nice day!";
break;
}

}
while(chc != 3);

}

void enterData(vector<Car>& newMyGarage){
string brand;
int year;
double price;

cout << "How many cars are in your garage?";
int garageSize;
cin >> garageSize;

for(int i = 0; i < garageSize; i++){
cout << "Car brand: ";
cin >> brand;
cout << "Car year: ";
cin >> year;
cout << "Car price: ";
cin >> price;

Car newCar(brand, year, price);
newMyGarage.push_back(newCar);
cout << endl;
}



}
void showData(const vector<Car>& newMyGarage){
unsigned int size = newMyGarage.size();
for(unsigned int s = 0; s < size; s++){
cout << "Car brand: " << newMyGarage[s].getBrand() << endl;
cout << "Car year: " << newMyGarage[s].getYear() << endl;
cout << "Car price: " << newMyGarage[s].getPrice() << endl;
cout << endl;
}

}


header file Car.h



#ifndef CAR_H_INCLUDED
#define CAR_H_INCLUDED
#include <iostream>
#include <string>

using namespace std;

class Car{
public:
string brand;
int year;
double price;
Car();
Car(string, int, double);
~Car();
string getBrand() const;
int getYear() const;
double getPrice() const;
void setBrand(string);
void setYear(int);
void setPrice(double);


};
#endif // CAR_H_INCLUDED






class vector printing result






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 23 '18 at 2:23









StenliNSStenliNS

61




61













  • In the overloaded constructor, you do not assign any values to the class variables. (the same for the set functions as well) ... so the output is uninitialized garbage values for year and price, the brand is likely an empty string so it appears to be blank.

    – Paul T.
    Nov 23 '18 at 2:42





















  • In the overloaded constructor, you do not assign any values to the class variables. (the same for the set functions as well) ... so the output is uninitialized garbage values for year and price, the brand is likely an empty string so it appears to be blank.

    – Paul T.
    Nov 23 '18 at 2:42



















In the overloaded constructor, you do not assign any values to the class variables. (the same for the set functions as well) ... so the output is uninitialized garbage values for year and price, the brand is likely an empty string so it appears to be blank.

– Paul T.
Nov 23 '18 at 2:42







In the overloaded constructor, you do not assign any values to the class variables. (the same for the set functions as well) ... so the output is uninitialized garbage values for year and price, the brand is likely an empty string so it appears to be blank.

– Paul T.
Nov 23 '18 at 2:42














0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53439948%2fvector-printing-incorrect-data%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53439948%2fvector-printing-incorrect-data%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







這個網誌中的熱門文章

Tangent Lines Diagram Along Smooth Curve

Yusuf al-Mu'taman ibn Hud

Zucchini