01/10/2018, 15:52

Mọi người xem em đặt xóa bộ nhớ đệm đã đúng chưa. Em cố ý nhập mã số sinh viên (dư kí tự) là nó bị vòng lặp vô tận bước nhập điểm trung bình à

#include <iostream>;
#include  <conio.h>;
#include  <string>
using namespace std;
struct SinhVien
{
	string hoten;
	string mssv;
	float diemtb;
};
typedef struct SinhVien sinhvien;
void nhapsinhvien(sinhvien &sv)
{
	do 
	{
		rewind(stdin);
		cout << " 
nhap vao ten sinh vien : ";
		getline(cin, sv.hoten);
		if (sv.hoten.length() > 30) 
		{
			cout << "
Ho ten qua 30 ki tu, vui long nhap lai";
		}
	} while (sv.hoten.length() > 30);
	do
	{
		rewind(stdin);
		cout << " 
nhap vao ma so sinh vien : ";
		getline(cin, sv.mssv);
		if (sv.mssv.length() > 10)
		{
			cout << "
ma so sinh vien qua 10 ki tu, vui long nhap lai";
		}
	} while (sv.hoten.length() >= 30);
	do 
	{
		cout << "
 nhap vao diem trung binh : ";
		cin >> sv.diemtb;
		if (sv.diemtb<0|| sv.diemtb>=10)
		{
			cout << "
nhap sai diem trung binh, vui long nhap lai";
		}
	} while (sv.diemtb<0 || sv.diemtb >= 10);
}
void xuatsinhvien(sinhvien sv)
{
	cout << "

		 Thong Tin Sinh vien";
	cout << "
Ten sinh vien la : " << sv.hoten;
	cout << "
Ma so sinh vien la : " << sv.mssv;
	cout << "
Diem trung binh la : " << sv.diemtb;
}

int main() 
{
	sinhvien x;
	sinhvien y;
	sinhvien z;
	nhapsinhvien(x);	
	nhapsinhvien(y);	
	nhapsinhvien(z);
	xuatsinhvien(x);
	xuatsinhvien(y);
	xuatsinhvien(z);
	_getch();
	return 0;
}

mọi nguoi xem em đặt xóa bộ nhớ đệm đã đúng chưa. em có ý nhập sai 3 lần là nó bị vòng lặp vô tận à

Bài liên quan
0