あなたはスクリーンショットからわかるように、fgets()
関数は、文字列name
に取るように一度だけ実行されているが、それはdesignation
文字列を受け付けていませんし、「給与」の入力にスキップされます。興味深いのは、この同じコードがTurboC3で完璧に動作しているという事実です。私はDevCPPのようなGCCコンパイラベースのIDEだけで、現在はLinuxのGCC自体に問題があります。標準入力から読み込む場合
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <string.h>
using namespace std;
class emp
{
private:
char name[20], desig[20];
int id;
float salary;
public:
void getdata()
{
cout << "ENTER NAME:\n";
fgets(name, 20, stdin);
cout << "ENTER ID:\n";
cin >> id;
cout << "ENTER DESIGNATION:\n";
fgets(desig, 20, stdin);
cout << "ENTER SALARY:\n";
cin >> salary;
}
void showdata()
{
cout << "NAME:- " << name << "\n";
cout << "ID:- " << id << "\n";
cout << "DESIGNATION: " << desig << "\n";
cout << "SALARY: " << salary << "\n";
}
};
int main()
{
emp ins[3];
int i;
cout << "ENTER DETAILS:\n";
for (i = 0; i < 3; i++)
ins[i].getdata();
cout << "*****************************DETAILS***************************\n";
for (i = 0; i < 3; i++)
ins[i].showdata();
return 0;
}
タイトルを小文字に変換して質問を編集しました。一般的に言えば、すべての大文字で書かれた文章は、ネイティブスピーカーが大声で叫んでいるように感じられます。うまくいけば、この編集はより有用なフィードバックを引きつけます。 – templatetypedef