Я работаю над этим проектом для своего класса C++, в котором мне нужно получить сбор информации от пользователя, включая пользователей, родившихся в этом году и в текущем году (нам еще предстоит узнать, как получить доступ к дате компьютера, чтобы она должен быть извлечен вручную). Я все еще довольно рано в процессе, и я столкнулся с этим препятствием, с которым я не могу работать.C++ getline не будет работать с int?
Хотя я использовал этот процесс, чтобы легко заставить систему имен работать с использованием пользовательского класса, я не могу заставить его работать для значения года. Я могу только предположить, что проблема заключается в том, что год - это int, а не строка, но я не могу понять, каким способом заставить это работать. Может ли кто-нибудь посмотреть этот код и помочь мне разобраться, в чем проблема?
Основной класс:
#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;
}
HeartRate класс:
#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 };
};
я продолжать работать в заблуждение, что государства не существует функция перегрузки соответствие найдено, но, как вы можете видеть, Я использую та же структура между основным классом и заголовком, и имя работало просто отлично.
[ 'станд :: GetLine()'] (http://en.cppreference.com/w/cpp/string/basic_string/getline) не работает с 'int', да. На втором этапе используйте 'std :: getline()' с 'std :: string' и' std :: istringstream'. –