30/09/2018, 22:56

Nhờ mọi người xem giúp lỗi sai bài CTDL

Em đang học về kiểu dữ liệu cấu trúc, code này dùng để cài đặt và hiển thị nội dung con trỏ, anh chị giúp em xem sai ở đâu với ạ!

# include <iostream>
# include <cstring>
using namespace std;

typedef struct{
	int day;
	int month;
	int year;
} Date;

typedef struct {
	char name [20]; // ten nhan vien
	Date birthDay; // ngay sinh nhan vien
	char role [20]; // chuc vu nhan vien
	float salary; // luong nhan vien
} Employee;

void Initstruct (Employee *myEmployee);
void Display (Employee *myEmployee);

void Initstruct (Employee *myEmployee)
{
	myEmployee = new Employee;
	cout << "name :";
	cin.getline  (myEmployee -> name, 20);
	cout << " day of birthday :";
	cin >> myEmployee -> birthDay.day;
	cout << "month of birth: ";
	cin >> myEmployee -> birthDay.month;
	cout << "year of birth: ";
	cin >> myEmployee -> birthDay.year;
	cout << "role: ";
	cin.getline (myEmployee -> role, 20);
	cout << "Salary : ";
	cin >> myEmployee -> salary;
}
void Display(Employee *myEmployee)
{
	cout << "name: " << myEmployee -> name << endl;
	cout << "birthday: " << myEmployee -> birthDay.day << "/"
		 << myEmployee -> birthDay. month << "/"
		 << myEmployee -> birthDay. year << endl;
	cout << "role: " << myEmployee -> role << endl;
	cout << "salary: " << myEmployee -> salary << endl;
	
}
int main()
{
	Employee *myEmployee;
	Initstruct(myEmployee);
	Display(myEmployee);
	
	system("pause");
	return 0;
	
}
Vu Van Chung viết 01:11 ngày 01/10/2018

Không biết cái chỗ dùng new cho khởi tạo có đúng không nhỉ?

Thuan Nguyen viết 01:10 ngày 01/10/2018

đấy là khởi tao bộ nhớ động cho con trỏ mà. k hiểu tại sao code của em chạy đến chỗ nhập role lại không chạy được nữa @@

Vu Van Chung viết 00:58 ngày 01/10/2018

bạn thử xóa bộ nhớ đệm fflush(stdin) chưa?

Lưu Thành Vương viết 01:08 ngày 01/10/2018

void Initstruct (Employee *&myEmployee)

Thuan Nguyen viết 01:01 ngày 01/10/2018

cảm ơn anh. nhập được hết rồi nhưng không hiển thị được.

Thuan Nguyen viết 00:58 ngày 01/10/2018

thêm & vào vẫn sai anh ạ

Lưu Thành Vương viết 00:57 ngày 01/10/2018

Sửa lại cái khai báo Initstruct nữa

Thuan Nguyen viết 01:07 ngày 01/10/2018

sửa như thế nào anh ??

Lưu Thành Vương viết 01:13 ngày 01/10/2018
void Initstruct (Employee *&myEmployee); //<- Mình nghĩ bạn quên thêm ở đây
void Display (Employee *myEmployee);

void Initstruct (Employee *&myEmployee)
{
	myEmployee = new Employee;
	cout << "name :";
	cin.getline  (myEmployee -> name, 20);
	cout << " day of birthday :";
	cin >> myEmployee -> birthDay.day;
	cout << "month of birth: ";
	cin >> myEmployee -> birthDay.month;
	cout << "year of birth: ";
	cin >> myEmployee -> birthDay.year;
	cout << "role: ";
	cin.getline (myEmployee -> role, 20);
	cout << "Salary : ";
	cin >> myEmployee -> salary;
}

Sửa v thôi là chạy được r. Đã test.

Thuan Nguyen viết 00:59 ngày 01/10/2018

được rồi ạ. cảm ơn anh

Bài liên quan
0