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++では、 'gets'が削除されていることに注意してください。 C++では、実際には文字列を扱うために 'std :: string'と' getline'を使うべきです。 – NathanOliver
[決して 'gets'を使用する](http://stackoverflow.com/q/1694036/10077)。 –
返信いただきありがとうございます。getname(sname)をgetline(cin、sname)に変更しました。char sname [20]を文字列snameに変更しても、同じ問題が発生します。 –