Ich habe an diesem Projekt für meine C++ - Klasse gearbeitet, in der ich eine Sammlung von Informationen vom Benutzer erhalten muss, einschließlich des Geburtsjahres und des aktuellen Jahres (wir müssen noch lernen, wie man auf das Datum des Computers zugreift) muss manuell abgerufen werden). Ich bin noch ziemlich früh in dem Prozess und ich bin auf dieses Hindernis gestoßen, das ich nicht funktionieren kann.C++ getline wird nicht mit int arbeiten?
Während ich diesen Prozess verwendet habe, um einfach das Namensystem mit der benutzerdefinierten Klasse zu arbeiten, kann ich es nicht für den Jahreswert arbeiten. Ich kann nur davon ausgehen, dass das Jahr eher ein Int als ein String ist, aber ich kann unmöglich einen anderen Weg finden, dies zum Laufen zu bringen. Könnte sich jemand bitte diesen Code ansehen und mir helfen herauszufinden, worum es geht?
Hauptklasse:
#include <iostream>
#include <string>
#include "Heartrates.h"
using namespace std;
int main() {
Heartrates myHeartrate;
cout << "Please enter your name (First and Last): ";
string yourName;
getline (cin, yourName);
myHeartrate.setName(yourName);
cout << "\nPlease enter the current year: ";
int currentYear;
getline (cin, currentYear);
myHeartrate.setCyear(currentYear);
cout << "\nYou entered " << currentYear;
}
Herzfrequenz Klasse:
#include <string> //enables string use
class Heartrates {
public:
void setName(std::string yourName) {
name = yourName;
}
std::string getName() const {
return name;
}
void setCyear(int currentYear) {
Cyear = currentYear;
}
int getCyear() const {
return Cyear;
}
private:
std::string name;
int Cyear{ 0 };
};
ich in einen Fehler am Laufen halten, die dort heißt es ist keine passende Überlastfunktion gefunden, aber wie Sie sehen, ich bin mit der gleiche Struktur zwischen der Hauptklasse und dem Header und der Name funktionierte gut.
[ 'std :: getline()'] (http://en.cppreference.com/w/cpp/string/basic_string/getline) funktioniert nicht mit 'int', ja. Verwenden Sie 'std :: getline()' mit 'std :: string' und' std :: istringstream' in einem zweiten Schritt. –