01/10/2018, 09:23

Có ai rõ về lệnh cin.ignore(); không ạ!

Cho mình hỏi sao đoạn code nó không cho nhập ngày tháng năm sinh vậy ạ?

void nhapdl(Thongtin sinhvien[], int n){
	for(int i=1;i<=n;i++){
		cin.ignore();
		cout<<"Nhap thong tin sinh vien thu: "<<i<<endl;
		cout<<"Ho va ten: ";cin.getline(sinhvien[i].hoten,30);
		cout<<"Que quan: ";cin.getline(sinhvien[i].quequan,30);
		cout<<"Gioi tinh: ";cin.getline(sinhvien[i].gioitinh,3);
		cout<<"Ngay thang nam sinh: ";cin>>sinhvien[i].ngaysinh.ngay;
		cout<<"Thang sinh: ";cin>>sinhvien[i].ngaysinh.thang;
		cout<<"Nam sinh: ";cin>>sinhvien[i].ngaysinh.nam;

	}
}
HK boy viết 11:32 ngày 01/10/2018

cin.ignore() sẽ bỏ qua tất cả các dấu trắng không cần thiết khi nhập vào.
Bạn bỏ cin.ignore() thử xem.

Do Ngoc Anh viết 11:29 ngày 01/10/2018

Sao mình chạy và thấy nó cho nhập bình thường mà, Dev c++ nhé

#include <iostream> 

using namespace std;
struct ngaysinh
{
	int day;
	int month;
	int year;
};
struct sv
{
	char hoten[234];
	ngaysinh bd;	
};
void nhapdl(sv sinhvien){
	cin.ignore();
	cout<<"Ho va ten: ";cin.getline(sinhvien.hoten,234);
	cout<<"Ngay thang nam sinh: ";cin>>sinhvien.bd.day;
}
int main()
{
	sv sinhvien;
	nhapdl(sinhvien);
	system("pause");
	return 0;
}
HK boy viết 11:36 ngày 01/10/2018

Code của bạn mới chỉ nhập 1 người thôi :v

Bài liên quan
0