请高手指点getch()与getchar()的区别。

如题所述

getch()的作用是从键盘接收一个字符,而且并不把这个字符显示出来,就是说,你按了一个键后它并不在屏幕上显示你按的什么,而继续运行后面的代码;
getche()则是有返回显示;
getchar()函数也是从键盘上读入一个字符,并带回显。它与getch()的区别在于:getchar()函数等待输入直到按回车才结束,回车前的所有输入字符都会逐个显示在屏幕上但只有第一个字符作为函数的返回值.
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-08-10
getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).getchar函数的返回值是用户输入的第一个字符的ascii码,如出错返回-1,且将用户输入的字符回显到屏幕.如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取.也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键.
getch与getchar基本功能相同,差别是getch直接从键盘获取键值,不等待用户按回车,只要用户按一个键,getch就立刻返回,getch返回值是用户输入的ascii码,出错返回-1.输入的字符不会回显在屏幕上.getch函数常用于程序调试中,在调试时,在关键位置显示有关的结果以待查看,然后用getch函数暂停程序运行,当按任意键后程序继续运行.
第2个回答  2009-04-12
getch与getchar基本功能相同,差别是getch直接从键盘获取键值,不等待用户按回车,只要用户按一个键,getch就立刻返回, getch返回值是用户输入的ASCII码,出错返回-1.输入的字符不会回显在屏幕上.
getch函数常用于程序调试中,在调试时,在关键位置显示有关的结果以待查看,然后用getch函数暂停程序运行,当按任意键后程序继续运行.
第3个回答  2020-10-27
简单来说,getchar()是一个整型的用于接收输入的字符的函数,而getch(),在tc中或win-tc中较常见,放在程序的末尾,起到暂停作用,就是把数据显示在屏幕上,如果不加getch(),屏幕一闪而过
第4个回答  2020-03-10
首先是两个函数存在的头文件不同,这个基本上你写#include
后就行了
然后就是用法稍微有些区别:
1.getchar(),能接受一个字符,按回车结束,并且在屏幕上显示出来,而且可以向前清除刚才所写的
2.getch(),接收一个字符,在屏幕上不显示
你自己多写写,练练应该可以理解的

c语言中,gets 和getchar及scanf是如何判断你输入的字符或者字符串结束...
getchar()是用来输入一个字符的,是以回车代表输入结束 gets()是用来输入字符串的,应该也是以回车代表输入结束 scanf()是什么都可以输入,scanf()是以回车代表输入结束 scanf()中会用到空格 是用作分隔符的 因为scanf()可以输入多个变量,如 canf("%d%d",&a,&b);\/\/表示输入两个整形...

c++getchar()函数问题
getchar()函数 就是从输入缓冲区读一个字符,再转换成 int 型 数值。9710,1097 是 cout 输出语句 问题。如果你 加上一个换新行就不会混淆了:cout << getchar()<< endl;cout << getchar()<< endl;回车 -- 打入Enter 键,getchar()得到的是"\\n",转ASCII值 十进制 10 97 是 "a"的...

C语言新手:关于getchar()的位置问题
你的第一个问题:因为你要不停的统计输入的字符再判断,所以getchar必须放在循环体里面,否则没有意义。你的第二个问题:因为你按下回车后 也算一个输入。我修改了你的程序如下:include <stdio.h> main(){ int a,b,c,d;char m;a=b=c=d=0;while(1){ m=getchar();if(m>='a'&&m<=...

C语言新手:关于getchar()的位置问题
你的第一个问题:因为你要不停的统计输入的字符再判断,所以getchar必须放在循环体里面,否则没有意义。你的第二个问题:因为你按下回车后 也算一个输入。我修改了你的程序如下:include <stdio.h> main(){ int a,b,c,d;char m;a=b=c=d=0;while(1){ m=getchar();if(m>='a'&&m<=...

急急急!!!C++如何读入不用按Enter和Space???
读入字符,一般使用 cin , cin.get(), cin.get(char)...cin.getline();您说的不用按Enter,或者Space就不大可能了吧 您c++的输入(iostream类)都是被缓冲的,您必须刷新缓冲区才可以发送字符给程序。如果不用按Enter键或者Space,我想就用鼠标吧,也就是windows下编程或者MFC编程可以使用鼠标 怎...

c语言ASCII码排序
思路:就是求三个字符按照ASCII码顺序进行排序输出,三个字符排序可以先求出三个数中的最大值和最小值,再把三个字符相加减去最大和最小的就是中间字符。参考代码:include<stdio.h>main(){ char a,b,c,max,min; while(scanf("%c%c%c",&a,&b,&c)!=EOF) { max=(a>b?a...

c语言函数的问题,求高手指点
在pthread_create()这个函数里调用的keyboard,调用的时候自然会给参数

我安装了vc++2010,调试一个简单的程序,却是下面的结果,请高手指点...
没有出错呀 你在程序中加一个 getchar() 就能暂停屏幕了

高手指点一下 为什么进入死循环?
do { p=push(*p,ch);ch=getchar();}while(ch!='#');这里的问题。当你输入#就退出循环

C语言strtol和getchar的用法问题
include"stdio.h"include"stdio.h"main(){char ch;ch=getchar();printf("%d,%c",ch,ch);\/\/控制输出格式就OK } 不过输入5,输出是ascii码值或者是字符

相似回答