getchar、getch、getche 与 gets()

一、getchar、getch、getche

1、getchar()

getchar()从输入缓冲区读入一个字符,并返回这个字符的ASCII码(即函数返回值为int型),出错返回-1(EOF);如果用户输入了不止一个字符,则其他字符会保存在键盘缓冲区等待getchar函数调用。

 2、getch() 、getche()、getchar()区别

getch()、getche()与getchar功能相同,区别是:

getch不带回显,且不需要用户按回车就可显示;

getche带回显,且不需要用户按回车就可显示;

getchar()带回显,但是需要用户按回车才能显示,可以输入一串字符,但只返回第一个字符的ASCII;

getch和getche调用格式 #include <stdio.h>

getchar调用格式 #include <conio.h>

3、程序示例1--三者区别

 1 # include <stdio.h>
 2 # include <conio.h>
 3 
 4 int main()
 5 {
 6     char c;
 7     c = getch();    //getch不带回显,用户按E,屏幕只会显示一个E(输出的E);
 8                     //用户只能输入一个字符,马上显示
 9     putchar(c);
10 
11     c = getche();    //getche带回显,用户按E,屏幕会显示两个E(一个是输入的E,一个是输出的E)
12                     //用户只能输入一个字符,马上显示
13     putchar(c);
14 
15     c = getchar();    //getchar不仅带回显,而且输入E后,需要按回车,才能显示第二个E
16                     //用户可以输入一串字符,但只返回第一个字符
17     putchar(c);
18 
19     return 0;
20 }

4、程序示例2--利用getch函数不带回显实现暂停功能

 1 # include <stdio.h>
 2 # include <conio.h>
 3 
 4 int main()
 5 {
 6     char str[20];
 7     gets(str);
 8     getch();    //用getch实现暂停,防止程序一闪而退,此处必须要任意按下一个键程序才结束。
 9                 //一般不用getche,因为getche带屏显,会把你任意按的字符显示在屏幕上    
10     return 0;
11 }

二、gets()

getchar、getch、getche三个函数的调用方式都是  函数名(),没有形参

gets函数调用方式为  gets(字符数组名或指针)

gets函数和scanf函数比较见下篇

原文地址:https://www.cnblogs.com/shuaishuaidefeizhu/p/5886934.html