注意getch()是从console读取,(非标准函数)
getch()需要的头文件是<conio.h>。
而getchar()是从stdin,一般是指键盘
windows平台下ENTER键会产生两个转义字符 \r\n,
\r : 回到开头的地方。
\n : 去到下一行开头



因此,getch()读到 \r 时就会返回他的ASCII码13。(后面的被无视了)
奇怪的问题是为什么getchar()会返回10呢?
前面不是说过返回第一个字符吗?
这的确会让人费解。实际上产生这个结果的原因是,
getchar()把输入的 \r\n 转换成了 \n ,
所以返回的是 \n 的ASCII码 10。为什么会这样呢?
因为前面说过getchar()是C语言标准库函数,
而在unix系统中ENTER键只产生 \n 。顺便说一下,
在MAC OS中ENTER键将产生 \r ,同样也会被替换成 \n。
这样,不管在什么平台下,getchar()都会得到相同的结果,
所以说getchar()标准库函数。

http://www.cnblogs.com/candyming/archive/2011/11/25/2262877.html

getch 和 getchar 在 windows 和 unix下的区别的更多相关文章

  1. Windows和Unix下的编码问题

    今天测试shell脚本时,执行报错: ./report.sh: /tmp/tmp.E8ekx6r5Qq/report.sh: /bin/bash^M: bad interpreter: No such ...

  2. socket在windows下和linux下的区别

    原文:socket在windows下和linux下的区别 1)头文件 windows下winsock.h/winsock2.h linux下sys/socket.h    错误处理:errno.h 2 ...

  3. 在Windows和UNIX下利用PHP和LDAP进行身份验证

    我现在的老板曾要求我为企业内部的Web服务提供一种标准的身份验证方法.我遇到的一个主要问题就是我们公司主要使用了两种平台:UNIX和.所以,我的第一个想法并不很成功:它要求每个员工都使用UNIX或者L ...

  4. 转:socket编程在windows和linux下的区别

    如无其它说明,本文所指Linux均表示2.6内核Linux,GCC编译器,Windows均表示Windows XP系统,Visual Studio 2005 sp1编译环境. 下面大概分几个方面进行罗 ...

  5. socket编程在windows和linux下的区别

    如无其它说明,本文所指Linux均表示2.6内核Linux,GCC编译器,Windows均表示Windows XP系统,Visual Studio 2005 sp1编译环境. 下面大概分几个方面进行罗 ...

  6. otl库(以前不知道有这个库,并且还可以在Unix下使用)

    OTL介绍:OTL 是 Oracle, Odbc and DB2-CLI Template Library 的缩写,是一个C++编译中操控关系数据库的模板库,它目前几乎支持所有的当前各种主流数据库,例 ...

  7. dos2unix(windows脚本文件放到unix下运行要注意)

    在windows下编写的shell脚本文件,直接放到linux下运行,是不行的. infiniDB的倒库脚本文件load.sh,将tbl文件导入infiniDB,怎么运行不成功,不建job.运来,是w ...

  8. getch()和getchar()之再讨论

    原文:getch()和getchar()之再讨论 在C语言的字符处理函数中,getch()和getchar()是经常让人迷惑的两个函数,他们都有一些“奇怪的”特点让初学者摸不着头脑.两个函数有很多相似 ...

  9. getch与getchar区别

    getch(): 所在头文件:conio.h 函数用途:从控制台读取一个字符,但不显示在屏幕上 getchar(): 所在头文件:stdio.h getch与getchar基本功能相同,差别是getc ...

随机推荐

  1. [BZOJ 3503][Cqoi 2014]和谐矩阵

    我觉得这一题的样例输出一点都不和谐,大家千万别像我一样被坑了…… 题目不算难,果然是进错省系列555,不过搞出 O(n*m*2m) 的还是不要挣扎的比较好 我们暴力地推出第 n 行 第 m 列中每个数 ...

  2. intellij idea使用配置jetty maven 插件

    pom.xml中更改或则添加: <build> <finalName>mall</finalName> <plugins> <plugin> ...

  3. 微信获取坐标的JS

    wx.getLocation({    type: 'wgs84', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'    succes ...

  4. Oracle存储过程 输出参数赋值异常:“Oracle.DataAccess.Types.OracleString”的类型初始值设定项引发异常。

    场景: 写了一个有返回参数的存储过程,在个另开发人员机器上都正常.其它机器报如题错误.让人郁闷的是,所有调用方都是客户端,根本不存在网上众贴所说的版本不一致问题. 分析: 虽然网上的帖子没有根本解决问 ...

  5. angular.js ngbind nghtml ngTemplate

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. UML精粹5 - 状态图,活动图,通信图,组合结构,组件图,协作,交互概述图,时间图

    状态机图state machine diagram 下面是状态图的一个例子(一个城堡中的秘密保险箱的控制面板). 转换transition包括3个部分:trigger-signature [guard ...

  7. 关于@Html.Action()的异常“控制器或该控制器未实现 IController。”

    解决之前: @Html.Action("BottomHelp", "Articles", new { num = 5}) 解决之后: @Html.Action( ...

  8. 不是技术牛人,如何拿到国内IT巨头的Offer(转载)

    转载的文章,中间有几段需要去学习. byvoid 面阿里星计划的面试结果截图泄漏,引起无数IT屌丝的羡慕敬仰.看看这些牛人,NOI金牌,开源社区名人,三年级开始写Basic-在跪拜之余我们不禁要想,和 ...

  9. mycat 插入语句导致的一个Dobbo问题

    2017-01-03 11:11:52.621 [com.alib] (): [DUBBO] Send heartbeat to remote channel /121.43.177.8:20192, ...

  10. 栅格数据处理 RasterDataset RasterLayer Raster RasterBandCollection

    1 IRasterLayer myrasterlayer = MapControl.Map.Layer[index] as IRasterLayer;2 IRaster myRaster = myra ...