当你在使用 C 语言编写控制台程序时,可能会使用到三个常用的函数:getch
、getche
和getchar
。它们都可以用于从控制台读取用户输入的字符,但是它们的行为有些不同。
1. getch
getch
函数通常被用于读取单个字符,但是它是一个非标准的函数,不是ANSI C标准的一部分。因此,它的行为可能因操作系统/编译器而异。简单来说,它可以从键盘上读取一个字符,但是输入的字符不显示在屏幕上,你可以用这个函数来获取用户的输入,并根据输入进行相应的处理。
下面是一个简单的示例代码,展示了如何使用getch
函数:
#include <stdio.h>
#include <conio.h> //包含getch函数的头文件
int main() {
char c;
printf("Enter a character:");
c = getch(); //读取输入的字符
printf("\nYou entered: %c\n", c); //输出输入的字符
return 0;
}
这个代码运行时会等待用户输入一个字符,并将用户输入的字符保存在变量 c 中,然后输出用户输入的字符。
需要注意的是,getch
函数在Windows平台上可用,在Unix/Linux平台上可能不存在或者表现不一致,因此在跨平台的程序中尽可能避免使用getch
函数。
2. getche
getche
函数类似于getch
,但是它会将读取的字符显示在屏幕上,这也是它名称中 "e" 的来源(read and echo)。这个函数通常用于读取单个字符,展示给用户并立即执对这一字符进行处理。
这里有一个getche
的示例代码,展示了如何使用它:
#include <stdio.h>
#include <conio.h> //包含getche函数的头文件
int main() {
char c;
printf("Enter a character:");
c = getche(); //读取输入的字符并同步输出到屏幕上
printf("\nYou entered: %c\n", c); //输出输入的字符
return 0;
}
这个代码运行时会等待用户输入一个字符,并将用户输入的字符保存在变量 c 中,然后将输入的字符直接输出在控制台上,并输出用户输入的字符。
需要注意的是,getche
函数在Windows平台上可用,在Unix/Linux平台上可能不存在或者表现不一致,因此在跨平台的程序中尽可能避免使用getche
函数。
3. getchar
getchar
函数用于从标准输入流(通常是键盘)读取单个字符,并将其保存在字符变量中,但它不会在屏幕上显示字符。这个函数通常用于读取多个字符,因为它可以重复调用以读取多个字符,直到读取到换行符或文件结束符。
下面是一个简单的示例代码,展示了如何使用getchar
函数:
#include <stdio.h>
int main() {
char c;
printf("Enter some text:");
while ((c = getchar()) != EOF && c != '\n') {//循环读取直到遇到换行符或文件结束符
printf("%c", c);
}
return 0;
}
这个代码运行时会一直读取用户从键盘上输入的字符,直到遇到换行符才结束循环,并将输入的字符逐个输出到控制台上。
需要注意的是,getchar
函数是标准的ANSI C函数,在Unix/Linux和Windows平台上均可用。
总结:
getch
是一个非标准的函数,在Windows编程中比较常见,一般用于读取单个字符,它不会将读取的字符显示在屏幕上。getche
函数与getch
函数类似,它也不是标准的函数,也是在Windows编程中比较常见,它在屏幕上显示读取的字符。getchar
是标准的函数,一般用于读取多个字符,例如从stdin中读取数据。通过循环来反复调用这个函数,从而不断地读取字符,直到遇到换行符或文件结束符为止,因为它会一直读取直到遇到这些字符。
希望这篇攻略对你有所帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c语言中getch,getche,getchar的区别 - Python技术站