hàm getchar() trả về mã phím do người dùng ấn
'\n' là mã phím của nút enter.
khi người dùng ấn enter thì getchar() trả về '\n'
while(getchar()!='\n');
nếu người dùng không nhấn enter thì gọi hàm getchar, nếu ấn enter thì thoát khỏi vòng while
cho mình hỏi câu lệnh "while(getchar()!='\n');" có tác dụng gì vậy,và khi nào dùng đến nó???
Code:int main(){ root=NULL; int i,n,m; printf("can tao bao nhieu ds:\n"); scanf("%d",&m); do{ printf("\n1.them sdt\n2.in ra\n3.xoa\n"); scanf("%d",&n); while(getchar()!='\n'); switch(n){ case 1: for(i=0;i<m;i++) add(); break; case 2: display(); break; case 3: delete(); break; } }while(n!=4); return 0; }
Đã được chỉnh sửa lần cuối bởi manta : 19-09-2011 lúc 07:10 PM.
hàm getchar() trả về mã phím do người dùng ấn
'\n' là mã phím của nút enter.
khi người dùng ấn enter thì getchar() trả về '\n'
while(getchar()!='\n');
nếu người dùng không nhấn enter thì gọi hàm getchar, nếu ấn enter thì thoát khỏi vòng while
nếu người dùng nhập vào không phải là phím enter thì hàm chương trình bắt đầu vào thân vòng while
Vòng lặp while() trong C sẽ sét điều kiện trước và chỉ chạy khi điều kiện true. Vòng lặp while() được sử dụng khi số lần lặp không biết trước.
Đã được chỉnh sửa lần cuối bởi aydada : 24-09-2011 lúc 04:49 PM.
theo mình hiểu đơn giản mục đích của việt trên là khử các ký tự thừa cảu phím enter để lại chống trường hợp bị trôi khi nhập thôi, tương tự tá dụng của fflush(stdin) hoặc %*C
Thanks các bạn.minh cũng nghĩ như bạn maitan_10000.mục đích chính chỉ khử ký tự enter từ bộ nhớ đệm bàn phím thôi....