Tại sao không nhập chuỗi được?

void NhapTS(ThiSinh& ts)
{
	printf("\nnhap ma sinh vien: ");
	flushall();
	gets_s(ts.MSSV);

	printf("nhap ho va ten: ");
	flushall();
	gets_s(ts.Tensv);

	printf("nhap toan ly hoa: ");
	scanf("%f%f%f", &ts.DiemToan, &ts.DiemLy, &ts.DiemHoa);

	printf("nhap khu vuc thi: ");
	flushall();
	gets_s(ts.KhuVucThi);

	printf("nhap xep loai sinh vien: ");
	flushall();
	gets_s(ts.XepLoai);
}
void NhapMang(ThiSinh a[], int& n)
{
	do
	{
		printf("nhap so luong thi sinh: ");
		scanf("%d", &n);
	} while (n <= 0);
	for (int i = 0;i < n;i++)
	{
		printf("nhap thi sinh thu %d ", i+1);
		NhapTS(a[i]);
	}
}

Thử sử dụng cin.ignore thay cho flushall xem

2 Likes

Cái này của C++ mà, bạn đó đang hỏi về C.

2 Likes

flushall() có bao gồm fflush(stdin) => toạch :smiley:

3 Likes

cảm ơn m.n e làm xong rồi ạ .Phải thêm getchar(); vào sau flushal();thì mới chạy chuỗi được

Lí do là vì fflush(stdin) đã ko chạy từ VS2015 rồi, getchar() nó mới chạy đấy.

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?