Я новичок в C ++, и у меня действительно плохое время с классами и объектами. Я не могу найти способ заставить пользователя вводить данные, а не просто какой-то указатель <<«..»; от меня. Мне нужно понимать классы и объекты. Буду очень признателен за вашу помощь. Я искал на форуме похожий вопрос и ничего не нашел, если я его пропустил, мне очень жаль.
#include <iostream>
#include <string>
using namespace std;
class ManosClass{
public:
string name;
};
int main ()
{
ManosClass co;
co.name = //i want here the user to enter his name for example and i can't figure a way to do this
cout << co.name;
return 0;
}
Чтобы прочитать ввод пользователя, вы ищете см станд :: GetLine или использовать std::cin
std::getline(std::cin, co.name);
или же
std::cin >> co.name;
cout
отправляет вещи. cin
отправляет вещи
Это может помочь:
cin >> co.name;
Кут выводится. Cin используется для ввода.
cin >> co.name
введите значение в co.name
Рассмотрим версию getline()
который находится в <string>
если вы не хотите предполагать, что имя человека отделено пробелами. Некоторые имена содержат более одного «слова». Это также менее неуклюже, чем cin.getline()
поскольку вам не нужно заранее указывать максимальную длину чьего-либо имени.
#include <iostream>
#include <string>
using namespace std;
int main()
{
string strName;
getline(cin, strName); //Will read up until enter is pressed
//cin >> strName //will only return the first white space separated token
//Do whatever you want with strName.
}
Редактировать: Модифицировано для использования оригинальных классов
#include <iostream>
#include <string>
using namespace std;
class ManosClass{
public:
string name; //You might want to look at rather not using public data in a class
};
int main ()
{
ManosClass co;
getline(cin, co.name);
cout << co.name;
return 0;
}
Альтернатива: перегрузка оператора
#include <iostream>
#include <string>
using namespace std;
class ManosClass{
public:
friend ostream& operator<<(ostream& out, const ManosClass& o);
friend istream& operator>>(istream& in, ManosClass& o);
private:
string name; //Hidden from prying eyes
};
ostream& operator<<(ostream& out, const ManosClass& o)
{
out << o.name;
return out;
}
istream& operator>>(istream& in, ManosClass& o)
{
getline(in, o.name);
return in;
}
int main ()
{
ManosClass co;
cin >> co; //Now co can be used with the stream operators
cout << co;
return 0;
}