黑马程序员技术交流社区

标题: fgetc、getc、getch、getche、getchar的区别 [打印本页]

作者: 打滚的橘子    时间: 2015-12-3 22:10
标题: fgetc、getc、getch、getche、getchar的区别
    学到文件操作的时候被字符输入搞晕了,查了好久后大概算是清楚了吧。我试着理一下。
ch = 'z';   FILE *fp;    这两是为了下面的用法举例。
                                             或:ch = fgetc(stdin);          从键盘获取一个字符。
                         一般从文件中读取字符,是个函数。
                                             或:ch = getc(stdin);           从键盘获取一个字符。
                         一般从标准输入设备获取字符,是个宏。
       在c语言中getc和fgetc用法没区别,但是由于getc是个宏,有时候使用结果会不同的。详细的我也不是很明白,有兴趣可以自己查查。


       getch和getche不是c的标准库里的函数,要用的话要有提供这个函数的库函数。getche和getchar的区别是,getche不经过缓存,用户从键盘输入一个字符后立刻获取这个字符,也不用回车。getchar会等用户输入字符或字符串,将它存入一块缓存区中,用户按了回车之后(回车也存入缓存区),再依次从缓存区中取一个字符。getch经常用来暂停程序,然后按任意键继续。getchar可以结合while循环吸收用户输入的无效字符串。
  getchar和getc、fgetc的关系
      getchar == getc(stdin) == fgetc(stdin)    
  注意getc和fgetc还是有一点点区别的,但是理解上这么理解是可以的。



作者: linexs    时间: 2015-12-3 23:18
好多没见过,基础班都有讲,还是楼主自己扩展的
作者: 吃饱就睡    时间: 2015-12-4 00:06
基础班没讲这么多啊
作者: 打滚的橘子    时间: 2015-12-4 17:30
linexs 发表于 2015-12-3 23:18
好多没见过,基础班都有讲,还是楼主自己扩展的

写代码的时候看到有这些,就顺便了解了下。
作者: 打滚的橘子    时间: 2015-12-4 17:33
吃饱就睡 发表于 2015-12-4 00:06
基础班没讲这么多啊

基础班只讲以后学习要用的,而且是填鸭式。很多时候知识点没细讲,课外扩充很有必要。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2