Не работает getline
Коллеги, добрый день, создаю новый вопрос, так как ответа на стэковерфлоу не нашёл, похожие темы не содержат такой же проблемы, как у меня, а на просторах интернета вообще нет информации по этому поводу, не работает getline, Visual Studio 2022 подчёркивает красным, я так понимаю эта функция устарела, тогда что использовать вместо неё? std::getline тоже пробовал, не работает, так как std не содержит такого члена. Если без std, то идентификатор getline не определен.
#include <iostream>
#include <string>
class Human
{
public:
std::string name;
std::string sex;
std::string colorofhair;
std::string colorofskin;
int age;
int weight;
int height;
};
int main()
{
system("chcp 1251 > null"); // Решает проблему со считыванием русских букв
setlocale(LC_ALL, "ru");
Human firstHuman;
firstHuman.name = "Андрей";
firstHuman.age = 21;
firstHuman.sex = "Мужчина";
firstHuman.colorofhair = "Чёрный";
firstHuman.colorofskin = "Белый";
firstHuman.weight = 67;
firstHuman.height = 185;
while (true)
{
std::string value;
std::cout << "Введите свойство, которое вы хотите узнать?: ";
// std::cin >> value; // Считывает только то, что идет до первого пробела
getline(std::cin, value); // Требует подключение библиотеки <string>
if (value == "Имя" || value == "имя")
{
std::cout << "Имя человека: " << firstHuman.name << std::endl;
}
else if (value == "Возраст" || value == "возраст")
{
std::cout << "Возраст человека: " << firstHuman.age << std::endl;
}
else if (value == "Пол" || value == "пол")
{
std::cout << "Пол человека: " << firstHuman.sex << std::endl;
}
else if (value == "Цвет волос" || value == "цвет волос")
{
std::cout << "Цвет волос человека: " << firstHuman.colorofhair << std::endl;
}
else if (value == "Цвет кожи" || value == "цвет кожи")
{
std::cout << "Цвет кожи человека: " << firstHuman.colorofskin << std::endl;
}
else if (value == "Вес" || value == "вес")
{
std::cout << "Вес человека: " << firstHuman.weight << std::endl;
}
else if (value == "Рост" || value == "рост")
{
std::cout << "Рост человека: " << firstHuman.height << std::endl;
}
else if (value == "Ничего" || value == "ничего" || value == "Стоп" || value == "стоп" || value == "Не хочу" || value == "не хочу")
{
break;
}
else
{
std::cout << "К сожалению такого свойства у этого человека нет." << std::endl;
}
}
}
Ответы (1 шт):
Автор решения: AlexZel
→ Ссылка
std::getline требует подключения
#include <string>
Он там определен.