
C语言读取按键的几种方法有:getchar()、getch()、kbhit()、scanf()。 其中,getchar()和getch() 是最常用的方法。getchar() 是标准库函数,用于从标准输入读取一个字符;getch() 是非标准库函数,属于conio.h库,用于读取键盘输入的字符而不显示在屏幕上。以下将详细介绍getchar()的使用方法。
getchar()函数的详细使用方法:
getchar()函数的基本原理是从标准输入读取一个字符,这使得它非常适合处理简单的键盘输入。它的用法非常简单,只需调用getchar()函数即可。以下是一个简单的示例:
#include <stdio.h>
int main() {
char ch;
printf("Press any key to continue...n");
ch = getchar();
printf("You pressed: %cn", ch);
return 0;
}
这个程序等待用户按下任意键,然后将按下的键显示出来。getchar()函数在读取字符时会等待用户输入,这意味着它是一个阻塞函数。
一、GETCHAR()函数的使用
getchar() 是一个标准库函数,用于从标准输入读取一个字符。它的实现方式非常简洁且易于使用,适用于简单的字符读取操作。
getchar()的基本用法
getchar() 函数会从标准输入读取一个字符,并返回其ASCII码。通常情况下,它会等待用户按下一个键,然后将该键的字符返回。以下是一个简单的例子:
#include <stdio.h>
int main() {
char ch;
printf("Press any key: ");
ch = getchar();
printf("You pressed: %cn", ch);
return 0;
}
在这个例子中,程序会等待用户按下一个键,然后显示出用户按下的字符。
getchar()的实际应用
getchar() 适用于需要读取单个字符的场景。例如,在游戏开发中,用于读取玩家的操作指令;在菜单程序中,用于读取用户的选择等。下面是一个更复杂的例子,演示了如何使用 getchar() 实现一个简单的菜单程序:
#include <stdio.h>
void showMenu() {
printf("Menu:n");
printf("1. Option 1n");
printf("2. Option 2n");
printf("3. Exitn");
}
int main() {
char choice;
while (1) {
showMenu();
printf("Enter your choice: ");
choice = getchar();
getchar(); // to consume the newline character
switch (choice) {
case '1':
printf("You chose Option 1n");
break;
case '2':
printf("You chose Option 2n");
break;
case '3':
printf("Exiting...n");
return 0;
default:
printf("Invalid choice, please try again.n");
}
}
return 0;
}
在这个例子中,程序会不断显示菜单,并等待用户输入选择。用户输入的字符会通过 getchar() 函数读取,并根据用户的选择执行相应的操作。
二、GETCH()函数的使用
getch() 是一个非标准库函数,属于 conio.h 库。它的特点是从键盘读取一个字符,但不显示在屏幕上。这在某些需要隐藏用户输入的场景中非常有用,例如密码输入。
getch()的基本用法
与 getchar() 类似,getch() 也用于读取单个字符。不同的是,getch() 在读取字符时不会在屏幕上显示出来。以下是一个简单的例子:
#include <stdio.h>
#include <conio.h>
int main() {
char ch;
printf("Press any key: ");
ch = getch();
printf("nYou pressed: %cn", ch);
return 0;
}
在这个例子中,程序会等待用户按下一个键,然后显示出用户按下的字符,但在按键过程中不会显示在屏幕上。
getch()的实际应用
getch() 适用于需要读取单个字符且不希望显示在屏幕上的场景。例如,在密码输入时,可以使用 getch() 来读取用户输入的密码字符。下面是一个简单的密码输入示例:
#include <stdio.h>
#include <conio.h>
int main() {
char ch, password[20];
int i = 0;
printf("Enter your password: ");
while((ch = getch()) != 'r') { // 'r' is the Enter key
password[i++] = ch;
printf("*");
}
password[i] = '