Hàm getch() để nhập mật khẩu

Tại sao khi mình chạy ct, khi nhấn enter nó lại ko kết thúc vòng while mà tiếp tục in ra ‘*’. Chỉ khi mình nhấp Ctrl+Enter thì mới kết thúc được??

char kiTu=’\0’;
while (kiTu=getch()!=’\n’) {
cout.put(’*’);
}

sửa chổ \n thành \r thử xem ạ

2 Likes

Trong Windows console thì khi ấn Enter, hệ điều hành nhận diện là “\r\n” nhé bạn. nên getch() sẽ nhận giá trị ‘\r’
Mình tìm được ở đây: https://stackoverflow.com/questions/10059142/reading-r-carriage-return-vs-n-newline-from-console-with-getc

1 Like

đã hiểu :smile thanks guys

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?