fflush(stdin) trong ubuntu (linux)
Khi lập trình c/c++ các bạn thường gặp phải hiện tượng trôi lệnh (máy không cho nhập dữ liệu). Để khắc phục tình trạng này thì bạn dùng lệnh ffulsh(stdin) để xóa bộ đệm. Tuy nhiên trên Linux thì không có hàm này, bạn hãy thay thế nó bằng lệnh
__fpurge(stdin);
Code ví dụ:
#include <stdio.h> // io #include <stdio_ext.h> // __fpurge(stdin); int main() { int x; char s[100]; // scan a number printf("enter number x = "); scanf("%d", &x); // clear stdin __fpurge(stdin); // scan a string printf("enter a string: "); gets(s); printf("number is %d \nstring is %s\n", x,s); return 0; }
enter number x = 7826 enter a string: nguyen van quan number is 7826 string is nguyen van quan
Đọc thêm gets() and fget() in C/C++
bạn cho mình hỏi hàm trên sử dụng thư viện gì vì mình build trên thư viện của ubuntu nó ko chạy được.
Nó nằm trong thư viện stdio_ext.h nhé bạn
thanks bro!
thưa anh >< anh có thể giải thích vì sao đc ko ạ
Vì sao cái gì bạn?