我遇到了一个问题,其中gets()不工作有时没有任何错误编译。换句话说,gets()不会返回任何值,但不会有警告或错误说明。 这里是它没有返回值错误gets(),不编译错误,但无法接收输入
#include<iostream>
#include<conio.h>
#include<stdio.h>
using namespace std;
class student
{
private:
int admno;
char sname[20];
public:
void Takedata()
{
cout<<"Enter admission number ";
cin>> admno;
cout<<"Enter student name " ;
gets(sname);
}
void Showdata()
{
cout<<"Admission number "<<admno<<"\nStudent name "<<sname;
}
};
int main()
{
student obj ;
obj.Takedata();
obj.Showdata();
getch();
return 0;
}
而在相反的代码这里是代码,其中它的返回值“的sname”
#include<iostream>
#include<conio.h>
#include<stdio.h>
using namespace std;
class student
{
private:
int admno;
char sname[20];
public:
void Takedata()
{
cout<<"Enter student name " ;
gets(sname);
}
void Showdata()
{
cout<<"\nStudent name "<<sname;
}
};
int main()
{
student obj ;
obj.Takedata();
obj.Showdata();
getch();
return 0;
}
如果有不清楚的地方请不要犹豫,问我!我很高兴接受蚂蚁回答/解决方案/建议!
请注意,在C11和C++ 14中'gets'已被删除。在C++中,你应该使用'std :: string'和'getline'来处理字符串。 – NathanOliver
[永远不要使用'gets'](http://stackoverflow.com/q/1694036/10077)。 –
谢谢你的回复,我把gets(sname)改为getline(cin,sname),char sname [20]改为string sname,同样的问题仍然存在。 –