ошибка: & quot; получает & quot; не объявляй в коде 10.0

 #include<iostream>
using namespace std;
class student
{
private:
int admno;
char sname[20];
float eng,math,science;
float total;
float ctotal()
{
return eng+math+science;
}
public:
void Takedata()
{
cout<<"Enter admission number ";
cin>> admno;
cout<<"Enter student name " ;
gets(sname);// here its giving the error
cout<< "Enter marks in english, math, science ";
cin>>eng>>math>>science;
total=ctotal();
};

void Showdata()
{
cout<<"Admission number "<<admno<<"\nStudent name "<<sname<<"\nEnglish "<<eng<<"\nMath "<<math<<"\nScience "<<science<<"\nTotal "<<total;
}
};
int main ()
{
student obj ;
obj.Takedata();
obj.Showdata();
return 0;
}

-3

Решение

использование std::cin.getline вместо gets а также std::string вместо char [],

Как отмечалось в комментариях, gets не заявлено в iostream, Более того, он устарел в C ++ 11 и удален в C ++ 14, что означает, что даже если вы включите cstdio или же stdio.h, он просто не компилируется в компиляторах, поддерживающих C ++ 14.

Но, тем не менее, никогда не используйте std::cin за char [], Причина такая же как gets, Оба сделают вашу программу под угрозой переполнение буфера когда ваш ввод длиннее буфера, что приведет к непредсказуемому поведению вашей программы, например к аварийному завершению. И взломщики могут даже взломать весь ваш компьютер с ним.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]