01/10/2018, 11:45

Lỗi không sử dụng được hàm getline

#include <iostream>

using namespace std;
#include <string>

#define MAX 50

struct SinhVien
{
	string hoten[MAX];
	float diem;
	string mssv[MAX];
};

struct DanhSach
{
	SinhVien node[MAX];
	int n;
};

void Initilize(DanhSach &ds);
int Empty(DanhSach ds);
int Full(DanhSach ds);
void Read(DanhSach &ds);

void main()
{

}

void Initilize(DanhSach &ds)
{
	ds.n == 0;
}

int Empty(DanhSach &ds)
{
	return ds.n == 0 ? 1 : 0;
}

int Full(DanhSach ds)
{
	return ds.n == MAX ? 1 : 0;
}

void Read(DanhSach &ds)
{
	cout << "Nhap so luong sinh vien: ";
	cin >> ds.n;
	cout << "
			NHAP THONG TIN SV";
	for (int i = 0; i < ds.n; i++)
	{
		cout << "Nhap ho ten sv: ";
		getline(cin, ds.node[i].hoten);
		cin >> ds.node[i].diem;
	}
}

Khoa NTA viết 13:55 ngày 01/10/2018

Có nhầm lẫn với C ở đây, theo bạn thì std::string hoten là gì? :v còn std::string hoten[MAX] là gì?

Vinh Nguyễn viết 13:45 ngày 01/10/2018

Hồi trước dùng bình thường mà, sao tự nhiên hôm nay dùng bị lỗi

Pham Van Hai viết 13:59 ngày 01/10/2018

Bạn đọc lại cách sử dụng getline đi, nó chỉ nhận std:string thôi.

istream& getline (istream& is, string& str, char delim);
istream& getline (istream& is, string& str);

Khoa NTA viết 13:59 ngày 01/10/2018

Rồi reply của bạn đâu có liên quan gì đến câu hỏi của mình đâu ?! Một cái là “chuỗi” và một cái là “mảng chuỗi”, bạn nhầm lẫn với “mảng ký tự” trong C rồi :v tự nhiên kêu std::getline đi lấy 1 dòng đắp vào cái “mảng chuỗi” thì phải đắp như nào?

Trần Hoàn viết 13:48 ngày 01/10/2018

Hồi trước dùng bình thường mà, sao tự nhiên hôm nay dùng bị lỗi

Tức là hồi trước bạn dùng sai cách, nhưng vô tình nó vẫn chạy được.

rogp10 viết 13:56 ngày 01/10/2018

Chắc nhớ nhầm với istream::getline

Bài liên quan
0