mình có môt đoạn code thế này, mình đang học cấp phát động để tạo mảng với struct, đoạn code dưới là để nhạp vào các họ tện người thôi
#include <stdio.h>
#include <stdlib.h>
typedef struct {
char* first_name;
char* last_name;
}Person;
int num_people = 0;
printf("how many people are there?\n");
scanf("%d",&num_people);
fflush(stdin);
Person* person = NULL;
person = calloc(num_people, sizeof(Person));
person->first_name = calloc(num_people, sizeof(char));
person->last_name = calloc(num_people, sizeof(char));
if(person != NULL) {
for(int i = 0; i < num_people; ++i) {
printf("nguoi thu %d\n", i + 1);
printf("last name : ");
gets(person[i].last_name); fflush(stdin);
printf("first name : ");
gets(person[i].first_name); fflush(stdin);
}
}
else
printf("failed to get memories\n");
return 0;
}
dù đã dùng fflush(stdin) bao nhiêu lần nó vẫn bị cái lỗi trôi lệnh, mò ra mới biết ffush(stdin) k phải standard, mọi người có cái hàm nào có thể xóa được buffer thì cho mình biết với. Thanks trước nha.
P/s: đừng đưa cho mình hàm cin.ignore nha, mình đang học c, code ở trên cũng là code c thôi có biết gì về c++ đâu, search thì toàn thấy cin.igonre T_T