getch()、getche()和getchar()函数

    (1) getch()和getche()函数

    这两个函数都是从键盘上读入一个字符。其调用格式为:

     getch();

     getche();

    两者的区别是: getch()函数不将读入的字符回显在显示屏幕上, 而getche()

函数却将读入的字符回显到显示屏幕上。

    例1:

     #include<stdio.h>

     #include<conio.h>

     main()

     {

      char c, ch;

      c=getch();     /*从键盘上读入一个字符不回显送给字符变量c*/

      putchar(c);    /*输出该字符*/

      ch=getche();   /*从键盘上带回显的读入一个字符送给字符变量ch*/

      putchar(ch);

     }

    利用回显和不回显的特点, 这两个函数经常用于交互输入的过程中完成暂停

等功能。

    例2:

     #include<stdio.h>

     #include<conio.h>

     main()

     {

      char c, s[20];

      printf("Name:");

      gets(s);

      printf("Press any key to continue...");

      getch(); /*等待输入任一键*/

     }

    (2) getchar()函数

    getchar()函数也是从键盘上读入一个字符, 并带回显。它与前面两个函数

的区别在于: getchar()函数等待输入直到按回车才结束, 回车前的所有输入字

符都会逐个显示在屏幕上。但只有第一个字符作为函数的返回值。

    getchar()函数的调用格式为:

     getchar();

    例3:

     #include<stdio.h>

     #include<conio.h>

     main()

     {

          char c;

          c=getchar();   /*从键盘读入字符直到回车结束*/

          putchar(c);    /*显示输入的第一个字符*/

          getch();       /*等待按任一健*/

     }

例4

     #include<stdio.h>

     #include<conio.h>

     main()

     {

          char c;

          while ((c=getchar())!='\n')   /*每个getchar()依次读入一个字符*/

          printf("%c",c);    /*按照原样输出*/

          getch();       /*等待按任一健*/

     }

转自:http://hi.baidu.com/the_way_welike/blog/item/9a0aa28c5d31d918b31bba39.html

-----------------------------------------------------------------------------------------------------------------------------------

getch()等应有头文件#include<conio.h>,下面是解释:

第一点:

你既然用了getch()函数,在前面就应有头文件#include<conio.h>。因为:

conio是Console Input/Output(控制台输入输出)的简写,其中定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作,比如getch()函数等等。

包含的函数

cgets(char *);

cprintf(const char *, ...);

cputs(const char *);

cscanf(const char *, ...);

inp(unsigned short);

inpw(unsigned short);

getch(void);

getche(void);

kbhit(void);

outp(unsigned short, int);

outpw(unsigned short, unsigned short);

putch(int);

ungetch(int);

void _Cdecl clreol (void);

void _Cdecl clrscr (void);

void _Cdecl delline (void);

int _Cdecl gettext (int left, int top, int right, int bottom,

void *destin);

void _Cdecl gettextinfo (struct text_info *r);

void _Cdecl gotoxy (int x, int y);

void _Cdecl highvideo (void);

void _Cdecl insline (void);

void _Cdecl lowvideo (void);

int _Cdecl movetext (int left, int top, int right, int bottom,

int destleft, int desttop);

void _Cdecl normvideo (void);

int _Cdecl puttext (int left, int top, int right, int bottom,

void *source);

void _Cdecl textattr (int newattr);

void _Cdecl textbackground (int newcolor);

void _Cdecl textcolor (int newcolor);

void _Cdecl textmode (int newmode);

int _Cdecl wherex (void);

int _Cdecl wherey (void);

void _Cdecl window (int left, int top, int right, int bottom);

har *_Cdecl cgets (char *str);

int _Cdecl cprintf (const char *format, ...);

int _Cdecl cputs (const char *str);

int _Cdecl cscanf (const char *format, ...);

int _Cdecl getch (void);

int _Cdecl getche (void);

char *_Cdecl getpass (const char *prompt);

int _Cdecl kbhit (void);

int _Cdecl putch (int c);

int _Cdecl ungetch (int ch);



第二点:

你没弄清getch()的用法。谨记如下:

getch直接从键盘获取键值,不等待用户按回车,只要用户按一个键,getch就立刻返回,getch返回值是用户输入的ASCII码,出错返回-1.输入的字符不会回显在屏幕上.getch函数常用于程序调试中,在调试时,在关键位置显示有关的结果以待查看,然后用getch函数暂停程序运行,当按任意键后程序继续运行.

c/c++,输入一个字符 2014-11-20 07:00 30人阅读 评论(0) 收藏的更多相关文章

  1. 网上关于sort结构体排序都不完整,我来写一个完整版的 2014-08-09 16:50 60人阅读 评论(0) 收藏

    主要参考sort函数_百度文库, 但是那篇有错误 2.结构体排序,a升,b降,c降 平板视图 打印? 01 #include <iostream> 02 #include <algo ...

  2. MS SQLServer 批量附加数据库 分类: SQL Server 数据库 2015-07-13 11:12 30人阅读 评论(0) 收藏

    ************************************************************ * 标题:MS SQLServer 批量附加数据库 * 说明:请根据下面的注释 ...

  3. DataGridView 列大写、列只能输入数字 分类: DataGridView 2014-12-07 08:40 332人阅读 评论(0) 收藏

    列大写: 说明:调用EditingControlShowing事件 private void dgvGoods_EditingControlShowing(object sender, DataGri ...

  4. PAT甲 1008. Elevator (20) 2016-09-09 23:00 22人阅读 评论(0) 收藏

    1008. Elevator (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue The highest ...

  5. winform只允许一个应用程序运行 2014-12-08 09:51 31人阅读 评论(0) 收藏

    使用互斥体Mutex类型 导入命名空间 using System.Threading; //声明互斥体 Mutex mutex = new Mutex(false, "ThisShouldO ...

  6. c++map的用法 分类: POJ 2015-06-19 18:36 11人阅读 评论(0) 收藏

    c++map的用法 分类: 资料 2012-11-14 21:26 10573人阅读 评论(0) 收藏 举报 最全的c++map的用法 此文是复制来的0.0 1. map最基本的构造函数: map&l ...

  7. hadoop调优之一:概述 分类: A1_HADOOP B3_LINUX 2015-03-13 20:51 395人阅读 评论(0) 收藏

    hadoop集群性能低下的常见原因 (一)硬件环境 1.CPU/内存不足,或未充分利用 2.网络原因 3.磁盘原因 (二)map任务原因 1.输入文件中小文件过多,导致多次启动和停止JVM进程.可以设 ...

  8. 【JAVA编码专题】总结 分类: B1_JAVA 2015-02-11 15:11 290人阅读 评论(0) 收藏

    第一部分:编码基础 为什么需要编码:用计算机看得懂的语言(二进制数)表示各种各样的字符. 一.基本概念 ASCII.Unicode.big5.GBK等为字符集,它们只定义了这个字符集内有哪些字符,以及 ...

  9. ZOJ2748 Free Kick 2017-04-18 20:40 40人阅读 评论(0) 收藏

    Free Kick Time Limit: 2 Seconds      Memory Limit: 65536 KB In a soccer game, a direct free kick is ...

随机推荐

  1. Asp.Net保存session的三种方法

    C#中保存Session的三种方法及Web.Config设置 1.保存session到sql server,需要指定Sql Server服务器,这种方法因为要读写数据库最慢 <sessionSt ...

  2. spring、springmvc、mybatis整合笔记

    这段时间上一个项目刚做完,下一个项目还没开始,趁这个时候来认真总结一下上个项目使用的ssm开发框架.由于,项目中关于使用ssm这部分的代码和配置是我们项目的整体架构师一个独立完成的,我们只负责业务部分 ...

  3. XE7 - Image的双击事件无响应,咋整?(已解决)

    今天折腾了好一会,本想做个类似于手机相册的功能,显示SQLite数据库中的图片,然后继续做一些处理.哪成想,写个测试例子时就被卡住了:简单的往窗体上拖放了一个TImage和一个TLabel,没有修改任 ...

  4. bash 的漏洞,你们中招了吗?

    http://threatpost.com/major-bash-vulnerability-affects-linux-unix-mac-os-x 检测: $ env x='(){:;}; echo ...

  5. Android studio gradle 打包 那些事

    总结了一下 目前觉得比较好用的gradle 和一些打包 经验.放在这里. 首先说下 渠道号 这个概念,我们经常会统计我们的api 访问来源 是来自于那个app store,这有利于 我们针对性的推广. ...

  6. SpringMvc+jquery easyui模块开发7步骤

    搞了一段java的开发,总结出模块开发经验: SpringMvc+jquery easyui模块开发7步骤:1) 数据表(table):                定义表结构并创建数据表t_use ...

  7. css overflow:hidden无效解决办法

    解决方案:只需要在设定overflow:hidden层加入定位即可 position:relative;left:0px;top:0px

  8. [Papers]NSE, $u$, Lorentz space [Sohr, JEE, 2001]

    $$\bex \bbu\in L^{p,r}(0,T;L^{q,\infty}(\bbR^3)),\quad\frac{2}{p}+\frac{3}{q}=1,\quad 3<q<\inf ...

  9. Android 获取assets的绝对路径

    第一种方法:       String path = "file:///android_asset/文件名"; 第二种方法:    InputStream abpath = get ...

  10. 【C++】统计代码覆盖率(三)

    报告集成到jenkins才是最终目的,因此又进行了部分资料查找,得到html和xml报告集成jenkins的配置如下: 一 集成html报告 这种方式集成在你已经用gcov+lcov生成了html报告 ...