Lỗi với câu lệnh fflush(stdin)?
Mọi người cho em hỏi câu lệnh fflush(stdin) của em bị lỗi gì mà sao em không nhập được tên sách, chỉ nhập được ID với tác giả thôi. Nó ra như thế này ạ:
Nhap ID: 1
Nhap ten sach: Nhap vao tac gia sach:
`#include “stdafx.h”
#include <stdio.h>
#include <tchar.h>
#include <conio.h>
struct SACH
{
int ID;
char BookName[50];
char Author[20];
};
void Nhap(SACH &);
void Xuat(SACH);
SACH* NhapMangSach(int*);
void Xuat(SACH[], int);
int main()
{
int n;
SACH*s = NhapMangSach(&n);
Xuat(s, n);
return 0;
}
void Nhap(SACH &s)
{
printf(“Nhap vao ID sach: “);
scanf_s(”%d”, &s.ID);
fflush(stdin);
printf("Nhap vao ten sach: ");
gets_s(s.BookName);
fflush(stdin);
printf("Nhap vao tac gia sach: ");
gets_s(s.Author);
}
void Xuat(SACH s)
{
printf("
");
printf(“ID: %d”, s.ID);
printf("
");
printf(“BookName: %s”, s.BookName);
printf("
");
printf(“Author: %s”, s.Author);
}
SACH * NhapMangSach(int *n)
{
SACH *a = NULL;
int m;
printf(“Nhap vao so sach: “);
scanf_s(”%d”, &m);
if (m <= 0)
return NULL;
*n = m;
a = new SACH[m];
if (a != NULL)
for (int i = 0; i < m; i++)
Nhap(a[i]);
return a;
}
void Xuat(SACH s[], int n)
{
for (int i = 0; i < n; i++)
Xuat(s[i]);
}
`