01/10/2018, 22:36

fflush(stdin) trong ubuntu (linux)

fflush(stdin) trong ubuntu (linux) Tháng Bảy 2, 2016 nguyenvanquan7826 LT C - C++ 3 responses 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 ...

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 
string is %s
", 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++

0