01/10/2018, 13:56

C++: Queue Lỗi getline

#include<iostream>
#include<string>

using namespace std;
#define MAX 100
struct HienMau
{
	string ten[50];
	int tuoi, luongmauhien;
};
typedef struct HienMau HIENMAU;
struct queue
{
	int head, tail, count;
	HIENMAU node[MAX];
};
void init(queue &Q) //khoi tao Queue rong~
{
	Q.head = 0;
	Q.tail = -1;
	Q.count = 0;
}
int IsEmpty(queue Q)
{
	if (Q.count == 0)
	{
		return 1;

	}
	return 0;
}
int IsFull(queue Q)
{
	if (Q.count >MAX)
	{
		return 1;

	}
	return 0;
}
void push(queue &Q, HIENMAU x)
{
	if (IsFull(Q))
		cout << "Danh sach day" << endl;
	else
	{
		Q.node[++Q.tail] = x;
		Q.count++;
	}
}
void ThongTinNguoiHienMau(HIENMAU &x)
{
	
	cout << "Nhap ten nguoi hien mau:";
	cin.ignore();
	getline(cin, ten);
	cout << "Nhap tuoi nguoi hien mau: ";
	cin >> x.tuoi;
	cout << "Nhap luong mau hien: ";
	cin >> x.luongmauhien;

}
void input(queue &Q)
{
	int i, n;
	HIENMAU x;
	cout << "Nhap so nguoi hien mau: ";
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		cout << "Nguoi hien mau so " << i + 1 << endl;
		ThongTinNguoiHienMau(x);
		push(Q, x);
	}
}
void output(queue Q)
{
	if (IsEmpty(Q))
		cout << "Danh sach rong";
	else
	{
		for (int i = Q.head; i <= Q.tail; i++)
		{
			cout << " Ten nguoi hien mau: " << Q.node[Q.head].ten<<endl;
			cout << " Tuoi nguoi hien mau: " << Q.node[Q.head].tuoi<<endl;
			cout << " Luong mau nguoi hien mau: " << Q.node[Q.head].luongmauhien << endl;
			Q.head++;
			

		}
	}
}
void main()
{
	queue Q;
	init(Q);
	input(Q);
	output(Q);
	system("pause");
}

Em có đoạn code trên ! e muốn nhập tên cho struct HienMau bằng getline(cin,x.ten) ở hàm ThongTinNguoiHien nhưng nó bị lỗi !
Mong cao thủ trợ giúp ạ ! Thanks all

Dark.Hades viết 16:01 ngày 01/10/2018

getline(cin, ten);

Đây nhé.

Mà bạn lập trình C hả :)).
C++ sao không dùng class mà lại toàn function thế kia

Đinh Đăng Khoa viết 16:06 ngày 01/10/2018

Vì bài toán đơn giản nên mình k dùng class !
dùng vậy cho nhanh ấy mà

Bài liên quan
0