verwende. Also bin ich relativ neu in C++ und ich machte ein kleines Projekt, wo ich den Filmtitel, die Bewertung und das Jahr eingeben. Für den ersten Durchlauf läuft das Programm gut. Nachdem der Benutzer die gewünschte Information eingegeben hat, drucke ich ihn ohne Probleme auf den Bildschirm zurück. Wenn ich jedoch ein zweites Filmobjekt erstelle, das während des gleichen Laufs dasselbe tut, überspringt es den Abschnitt, in dem nach dem Titel gefragt wird, und springt direkt zur Bewertung. Irgendwelche Ideen? Es ist wahrscheinlich ein Noob-Fehler. Mein Code ist unten.Nach dem Erstellen des zweiten Objekts fragt das Konstruktorprogramm nicht, was ich getline für
MovieProject.cpp
#include "stdafx.h"
#include "Movie.h"
#include <iostream>
#include <string>
using namespace std;
int main()
{
Movie starwars;
starwars.MovieTeller(starwars);
Movie FerrisBueller;
FerrisBueller.MovieTeller(FerrisBueller);
Movie TheFoxandTheHound;
TheFoxandTheHound.MovieTeller(TheFoxandTheHound);
return 0;
}
Movie.cpp
#include "stdafx.h"
#include "Movie.h"
#include <string>
#include <iostream>
using namespace std;
Movie::Movie()
{
cout << "What is the title of your movie:";
getline(cin,Title);
cout << "What is the Rating:";
getline(cin,Rating);
cout << "What year was it made:";
cin >> Year;
cout << "\n" << endl;
if (Year > 2016) {
cout << "Comon Dude stop messing around" << endl;
exit(404);
}
}
void Movie::MovieTeller(Movie a) {
cout << "Title:" << Title << "\n" << "Rating:" << Rating << "\n" << "Year:" << Year << "\n" << endl;
}
Movie::~Movie()
{
}
Movie.h
#pragma once
#include <iostream>
using namespace std;
class Movie
{
public:
Movie();
~Movie();
void MovieTeller(Movie a);
private:
string Title;
string Rating;
int Year;
};
Die Eingabe von 'Konstruktor' ist schlecht. Wenn Sie ein 'Array' mit 1000 Elementen erstellen möchten, müssen Sie 1000 Mal Eingaben machen. – LibertyPaul
Sie mischen 'getline' und' >> '. – melpomene
Höchstwahrscheinlich ist immer noch etwas im Eingabepuffer der vorherigen Iteration. –