hàm getch trong C++

Ham Getch Trong C



Trong miền ngôn ngữ lập trình C và C++, các phương pháp và thư viện tự nhiên khác nhau được sử dụng. Trong bài viết này, chúng ta sẽ xem xét kỹ hơn phương thức getch() của C++. Hàm getch() được sử dụng khi chúng ta muốn đọc một chuỗi ký tự từ bàn phím và nó không chiếu kết quả ra màn hình. Ở đây, chúng ta sẽ khám phá hàm getch() này một cách chính xác với sự trợ giúp của các ví dụ và bằng chứng hợp lệ để bạn nhận thức. Phương pháp này hầu như có thể sử dụng được trong các tình huống (đầu ra) dựa trên bảng điều khiển trong C++ để lấy đầu vào từ người dùng.

Getch() trong C++ là gì?

Trong C++, thư viện có tên tệp tiêu đề “cstdio” chủ yếu được sử dụng cho hàm getch(). Getch() cũng được định nghĩa trong tệp “conio. h” dành riêng cho trình biên dịch và là một hàm không chuẩn vì nó không hoàn toàn là một phần của tiêu chuẩn thư viện C++. Chữ viết tắt của getch là “get character” và nó được sử dụng để ở trên màn hình đầu ra một lúc cho đến khi người dùng chuyển dữ liệu đầu vào.

Hãy để chúng tôi giải thích rõ hơn về khái niệm này với sự trợ giúp của các ví dụ. Ở đây, chúng ta sẽ tìm hiểu về cú pháp, cách sử dụng và hành vi của phương thức getch() trong C++ với sự trợ giúp của các tình huống thích hợp.







Tình huống 1: Cách sử dụng Getch() trong ứng dụng điều khiển bằng menu

Hãy cùng thảo luận về ứng dụng nhỏ điều khiển bằng menu mà chúng tôi sẽ liệt kê các tùy chọn khác nhau. Mỗi tùy chọn được thiết kế cho các mục đích khác nhau như thực đơn nhà hàng. Đoạn mã của ví dụ này được đính kèm sau đây:



#include
#include
#include
sử dụng không gian tên tiêu chuẩn ;
int chủ yếu ( ) {
ký tự sự lựa chọn ;
tiêu chuẩn :: cout << 'Thực đơn nhà hàng: \N ' ;
tiêu chuẩn :: cout << '1. Lựa chọn 1: Pizza \N ' ;
tiêu chuẩn :: cout << '2. Lựa chọn 2: Burger \N ' ;
tiêu chuẩn :: cout << '3. Lựa chọn 3: Bánh \N ' ;
tiêu chuẩn :: cout << 'Nhập lựa chọn của bạn:' ;
sự lựa chọn = getch ( ) ; // người dùng nhập thông tin đầu vào  và getch() đọc thông tin đầu vào mà không cần nhấn nút enter
công tắc ( sự lựa chọn ) {
trường hợp '1' :
tiêu chuẩn :: cout << ' \N bạn chọn 'Pizza' \N ' ;
phá vỡ ;
trường hợp '2' :
tiêu chuẩn :: cout << ' \N Bạn chọn 'Burger' \N ' ;
phá vỡ ;
trường hợp '3' :
tiêu chuẩn :: cout << ' \N Bạn chọn 'Bánh' \N ' ;
phá vỡ ;
mặc định :
tiêu chuẩn :: cout << '\Không có lựa chọn - Không có thứ tự \N ' ;
}
trở lại 0 ;
}

Đầu tiên, chúng ta khai báo các thư viện chuẩn cần thiết khi bắt đầu chương trình. Chúng tôi tạo logic bên trong hàm chính và mọi thứ bên trong hàm chính của chương trình sẽ có thể thực thi được. Ở đây, chúng ta khai báo một biến “lựa chọn” có kiểu dữ liệu là một ký tự. Sau đó, chúng tôi tạo một menu hiển thị trên màn hình bảng điều khiển. Chúng tôi cung cấp cho người dùng một “Menu nhà hàng” với các tùy chọn khác nhau như “Pizza”, “Burger”, “Bánh ngọt” và “Không có lựa chọn nào”.



Chúng tôi chuyển getch() cho lựa chọn biến vì đầu vào của người dùng được lưu trữ trong biến này và tự động hiển thị đầu ra theo tùy chọn đã chọn. Để chọn một tùy chọn từ menu, chúng ta sử dụng hàm switch() và chuyển “lựa chọn” vào hàm này. Bên trong phương pháp “chuyển đổi”, chúng tôi thực hiện các trường hợp đối với từng tùy chọn riêng lẻ. Trong phương thức “switch” trong C++, câu lệnh break luôn được sử dụng ở cuối mỗi trường hợp để chỉ ra phần cuối của câu lệnh. Khi chúng tôi biên dịch và thực thi nó, đầu ra được hiển thị trên màn hình bảng điều khiển được đính kèm như sau:





Bây giờ, hàm getch() sẽ hoạt động ở đây. Khi người dùng nhập lựa chọn, hàm getch() sẽ so sánh đầu vào này với trường hợp chuyển đổi và sẽ hiển thị đầu ra hoặc tùy chọn trên bảng điều khiển một cách tự động và ngay lập tức.



Trong ảnh chụp màn hình đính kèm trước đó, người dùng nhập lựa chọn “2” và kết quả xuất hiện trên màn hình là “bạn chọn ‘Burger’”. Hoạt động của getch() bị xóa trong ví dụ này khi người dùng nhập đầu vào và đầu ra dự kiến ​​được hiển thị trên màn hình bảng điều khiển thay vì đầu vào do người dùng cung cấp được hiển thị trên bảng điều khiển.

Tình huống 2: Chấp nhận mật khẩu ẩn từ người dùng bằng Getch()

Trong kịch bản này, chúng ta sẽ tìm hiểu khái niệm về cách người dùng có thể nhập mật khẩu một cách bí mật và hiển thị mật khẩu đã nhập trên màn hình bảng điều khiển. Ở đây, chúng ta sử dụng hàm getch() để giữ màn hình cho đến khi người dùng chuyển dữ liệu đầu vào. Hãy nhớ rằng getch() không hiển thị đầu vào của người dùng vì con trỏ không hiển thị đầu vào trên màn hình bảng điều khiển. Đoạn mã của kịch bản này được đề cập như sau:

#include
#include
#include
#include
#include
int chủ yếu ( )
{
ký tự vượt qua [ số 8 ] ;
int tôi ;
tiêu chuẩn :: cout << 'Nhập mật khẩu 8 chữ số:' ;
( tôi = 0 ; tôi <= 7 ; tôi ++ ) {
vượt qua [ tôi ] = getch ( ) ;
tiêu chuẩn :: cout << '*' ;
}
vượt qua [ tôi ] = ' \0 ' ;
tiêu chuẩn :: cout << ' \N ' ;
tiêu chuẩn :: cout << 'Bỏ ẩn mật khẩu đã nhập:' ;
( tôi = 0 ; vượt qua [ tôi ] ! = ' \0 ' ; tôi ++ )
tiêu chuẩn :: cout << ( '%c' , thôi [ tôi ] ) ;
    getch ( ) ;
trở lại 0 ;
}

Như đã thấy trong đoạn mã đã cho, hãy thêm các thư viện tiêu chuẩn cần thiết cho việc sử dụng hàm getch() và để hiển thị kết quả trên màn hình. Chức năng chính của chương trình này là bao gồm các bước khác nhau để chúng tôi nhập mật khẩu từ người dùng và hiển thị mật khẩu trên màn hình. Chúng ta cần biến mảng có kiểu dữ liệu là “Char” có kích thước 8 phần tử. Ngoại trừ điều này, chúng ta cũng cần một biến lưu trữ các giá trị lặp lại.

Ở đây, chúng tôi sử dụng “Vòng lặp For” để đọc mọi số lượng đầu vào của người dùng nếu kích thước mảng là “8”. Sau đó, người dùng chỉ nhấn mật khẩu chính trên cửa sổ bảng điều khiển đầu vào với sự trợ giúp của vòng lặp. Bên trong vòng lặp “for” này, chúng ta chuyển hàm getch() tới mảng passw[]. Chức năng này giữ trên màn hình cho đến khi người dùng nhập 8 ký tự của mật khẩu. Trên mỗi lần đếm vòng lặp, hãy in “*” trên mỗi lần đếm đầu vào của người dùng và vòng lặp được đóng ở đây.

Sau đó, chúng ta sử dụng lại vòng lặp “for” để hiển thị chính mật khẩu ẩn bằng cách chỉ lấy các giá trị từ passw[]. Getch tự động giữ màn hình cho đến khi dữ liệu đầu vào của người dùng được lưu trữ hoàn hảo trong mảng và hiển thị mật khẩu trên màn hình.

Nhấp vào tùy chọn “Biên dịch và chạy” để thực thi chương trình và hiển thị kết quả trên màn hình.

Nhập mật khẩu 8 chữ số trên màn hình. Khi nhập xong 8 chữ số, nó sẽ tự động hiển thị mật khẩu đã nhập trên cửa sổ bảng điều khiển. Nhấn phím bàn phím 8 lần và nhập mật khẩu.

Màn hình đầu ra bị treo chỉ vì hàm getch(). Hàm getch() chỉ in dữ liệu đầu vào trên màn hình như trong ảnh chụp màn hình đính kèm trước đó.

Phần kết luận

Tóm lại, getch() là chức năng quan trọng nhất của lập trình C và C++ giúp người dùng đóng băng đầu vào từ bàn phím mà không hiển thị hoặc không có con trỏ hiển thị đầu vào trên màn hình. Do thư viện không chuẩn của nó nên nếu chúng ta không sử dụng getch() trong chương trình, cửa sổ giao diện điều khiển sẽ được hiển thị cho đến khi thời gian cần thiết để thực hiện chương trình tính bằng mili giây. Trong bài viết này, chúng tôi đã giải thích phương pháp này bằng các ví dụ mã thích hợp.