Hàm gets trong C

Cho e hàm gets này phải làm sao để nhập vào được ạ? E run code thì nó toàn bỏ qua.

void Nhap1HS(HS *hs){
    printf("\nNhap MSHS: ");scanf("%s",&hs->MSHS);
    printf("\nNhap ho ten: ");gets(hs->hoten);
    printf("\nNhap ngay thang nam sinh: ");
    NhapNamSinh(&hs->ngaysinh);
    printf("Nhap diem tb: ");scanf("%f",&hs->diemtb);
}

Bỏ qua vì khi bạn nhập MSHS bạn nhấn Enter.
Cách thông dụng và an toàn là để while(getchar() != '\n'); và giữa 2 lần nhập.
Còn nhiều cách khác nữa.

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