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
Bài liên quan
Đâ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
Vì bài toán đơn giản nên mình k dùng class !
dùng vậy cho nhanh ấy mà